UITableView 在请求数据后调用reloadData只走numberOf相关代理,不走cellForRowAtIndexPath和HeightForRow等代理的坑

UITableView 在请求数据后调用reloadData只走numberOf相关代理,不走cellForRowAtIndexPathHeightForRow等代理的坑


最近项目遇到这个坑,我遇到的情况是,数据拿到,且走了下面这两个方法,-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section

其他代理方法没有走,尤其是关键的cellForRow,搞得有点头疼

检查了tableview的frame宽高都有值,但是:

注意:

是在请求到数据之后,才有tableView的frame才有值

是在请求到数据之后,才有tableViewframe才有值,这就是——导致除上面两个number相关代理方法走了,其他代理方法不走的原因!!!!

解决:要在请求到数据之前,也就是dataSource的值为空时,就要把tableView的frame设置好,确保有宽和高,不能为 0 !才能保证拿到数据的时候,tableView是有frame的,就能正常调用cellForRow等代理方法✌️


如果有更好的方法或者有补充、疑问的请留意,谢谢!❤️

你可能感兴趣的:(UITableView 在请求数据后调用reloadData只走numberOf相关代理,不走cellForRowAtIndexPath和HeightForRow等代理的坑)