2015-08-08 65 views
0

我已经使用故事板中的一个简单原型单元格为我的表视图添加标题视图。我在单元格中添加了一些标签,并为每个标签赋予了特定的标签,但在访问它时返回了[cell viewWithTag:]方法的无值(我没有为单元格创建自定义类)我正在使用以下方法UITableViewCell for headerview不加载故事板的子视图

-(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。

+0

您必须检查'dequeueReusableCellWithIdentifier'是否返回一个对象,或者是否必须创建一个新对象。 –

回答

0

我跑进了XCode 7.0测试版5(7A176x)这个问题。我想这是一个错误。我检查了调试器,结果发现cellView在运行时没有任何子视图。 如果您正在设计某种特定的屏幕尺寸,则此解决方法可能对您有所帮助。切换到基本价值观是这样的: Screen size checking screenshot

然后在属性检查器检查两个“已安装”选项,在您需要的所有看法和他们的superviews检查(例如在原型细胞,表视图各方意见,这是上海华盈):

Screenshot of "installed" options

之后,你可以回到你的具体的屏幕尺寸和viewWithTag()将返回正确的值。

+0

非常感谢,它真的适合我 – user3417374

0

(ID)dequeueReusableCellWithIdentifier:(的NSString *)标识符

返回值

一个UITableViewCell对象与相关联的标识符或零,如果没有这样的对象中可重复使用的单元队列存在。

所以我猜这个方法返回nil为你:)尝试一个版本,需要一个indexPath :)

+0

其实我从dequeueReusableCellWithIdentifier:方法得到HeaderView的对象,但[headerView viewWithTag:100]返回了我的nil标签。 – user3417374

+0

你可以打印headerView的视图层次结构吗? :) – sloik

+0

你可以输入控制台: 'po [headerView recursiveDescription]' – sloik