用于标题视图的UITableViewCell不从故事板加载子视图

时间:2015-08-08 20:58:04

标签: ios objective-c uitableview

我在故事板中使用了一个简单的原型单元,用于将标题视图添加到我的表视图中。我在单元格中添加了一些标签并为每个标签添加了特定的标签,但是在访问它时返回[cell viewWithTag:]方法的nil值。(我还没有为单元格创建自定义类)我正在使用以下方法

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UITableViewCell * headerView = [tableView dequeueReusableCellWithIdentifier:@"HeaderView"];

    UILabel * lblVenueName = (UILabel *)[headerView viewWithTag:100];
    lblVenueName.text = @"Test Venue";

    return headerView;
}

对于上面的代码,lblVenueName的值总是返回nil。

2 个答案:

答案 0 :(得分:0)

  

(id)dequeueReusableCellWithIdentifier:(NSString *)identifier

     

返回值

     

具有关联标识符的UITableViewCell对象,如果可重用单元队列中不存在此类对象,则为nil。

所以我猜这个方法为你返回nil :)尝试一个带索引路径的版本:)

答案 1 :(得分:0)

我在XCode 7.0 beta 5(7A176x)中遇到了这个问题。我想这是一个错误。我已经检查过调试器,结果发现cell contentView在运行时没有任何子视图。 如果您正在设计某些特定的屏幕尺寸,那么此解决方法可能会对您有所帮助。切换到这样的基本值: Screen size checking screenshot

然后在属性检查器中检查"是否已安装"在您需要的所有视图及其超级视图上检查选项(例如,对于原型单元格中的所有视图,表格视图及其超级视图):

Screenshot of "installed" options

之后,您可以返回到特定的屏幕尺寸,viewWithTag()将返回正确的值。