UITableView 在请求数据后调用reloadData只走numberOf相关代理,不走cellForRowAtIndexPath和HeightForRow等代理的坑
最近项目遇到这个坑,我遇到的情况是,数据拿到,且走了下面这两个方法,-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
其他代理方法没有走,尤其是关键的cellForRow,搞得有点头疼
检查了tableview的frame宽高都有值,但是:
注意:
是在请求到数据之后,才有tableView的frame才有值
是在请求到数据之后,才有tableView的frame才有值,这就是——导致除上面两个number相关代理方法走了,其他代理方法不走的原因!!!!
解决:要在请求到数据之前,也就是dataSource的值为空时,就要把tableView的frame设置好,确保有宽和高,不能为 0 !才能保证拿到数据的时候,tableView是有frame的,就能正常调用cellForRow等代理方法✌️
如果有更好的方法或者有补充、疑问的请留意,谢谢!❤️