美文网首页
UITableView代理cellForRowAtIndexPa

UITableView代理cellForRowAtIndexPa

作者: frola_ | 来源:发表于2018-12-27 09:48 被阅读0次

今天在项目中突然遇到UITableView都调用,但是之前是可以调用的,数据源也没有问题,后来一点点排查发现时修改代码的时候,tableviewd的frame不对所以特意出一篇排查方案

1、是否设置代理源

        tableView.dataSource = self;
        tableView.delegate = self;

2、numberOfSectionsInTableView是否设置

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return 1;

}

3、numberOfRowsInSection方法返回值是否正确,如果不正确就不会执行 cellForRowAtIndexPath。

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

    return 1;

}

4、检查tableView的frame

如果tableview的高度为nil,则不会调用tableview的代理方法

5、还有可能是autolayout引起的,autolayout约束不对,也会导致tableview显示不出来,

cellForRowAtIndexPath是在显示到界面的时候才调用,正确的设置autolayout就会执行该方法。

6、如果纯代码实现,并使用VFL布局参考以下写法

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-64-[table]-50-|" options:0 metrics:nil views:constraintsView ]];

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[table]-0-|" options:0 metrics:nil views:constraintsView ]];

相关文章

网友评论

      本文标题:UITableView代理cellForRowAtIndexPa

      本文链接:https://www.haomeiwen.com/subject/rogllqtx.html