通常我们在自定义一个UITableViewCell时,从网络上获取数据,传入到自定义tableviewcell类中,进行加载,运行程序之后,发现仍然没有数据显示;

    这里我们以简单的数据源形式来做一次实验,如图所示:

    这里_dataSource为NSArray的对象,CustomTableViewCell为自定义cell类,当前为viewcontroller 中的代码;

UITableView自定义UITableViewCell中传入数据不显示_数据不显示

    如下图,为自定义cell中的代码部分:

    CustomTableViewCell.h头文件部分:

UITableView自定义UITableViewCell中传入数据不显示_自定义UITableViewCell_02

    CustomTableViewCell.m文件部分:

UITableView自定义UITableViewCell中传入数据不显示_数据不显示_03

运行之后,发现没有任何数据显示;

原因:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中,先定义cell,也就是说 先执行 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier方法,而此时, [label setText:_title]; _title数据为空;执行完毕之后,才给_title赋值: cell.title = _dataSource[indexPath.row];

解决方案:重写属性title的设置器方法,并在方法中,设定label的text,即可;

如下图:

UITableView自定义UITableViewCell中传入数据不显示_自定义UITableViewCell_04


运行之后,如下图,完全正常:

UITableView自定义UITableViewCell中传入数据不显示_数据不显示_05