美文网首页
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