您的位置:首页 > 产品设计 > UI/UE

UITableView代理cellForRowAtIndexPath不执行的相关解决方案

2016-07-05 21:16 447 查看
 

UITableView代理cellForRowAtIndexPath不执行的相关解决方案

今天写一个程序,郁闷了半天,结果tableView总是不执行cellForRowAtIndexPath这个方法,一开始真不知道为什么,TableView一直显示不正确,最后调试了半天,终于明白,原来是numberOfRowsInSection返回失败的原因,主要原因是由于在ViewAppDelegate代理中未对数据库进行初始化,原因终于找到了,还是比较高兴!
总结:如果发现TableView总是显示不正确,或没有显示,则需要跟踪看看下面的函数是否返回正确

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

1、是否设置代理与数据源
    [table setDelegate:self];
    [table setDataSource:self];

2、numberOfSectionsInTableView是否设置
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

3、numberOfRowsInSection方法返回值是否正确,如果不正确就不会执行 cellForRowAtIndexPath。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}

4、检查Table是否被其他View遮挡

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

cellForRowAtIndexPath是在显示到界面的时候才调用,正确的设置autolayout就会执行该方法。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: