Tha*_*Tyl 0 iphone objective-c ios
我无法设置UILabel对象的属性.
以下代码位于- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中:
UILabel *label = (UILabel *)[cell viewWithTag:0];
label.text = [self.comments objectAtIndex:indexPath.row*2];
label.textColor = [UIColor cyanColor];
label.adjustsFontSizeToFitWidth = YES;
Run Code Online (Sandbox Code Playgroud)
我得到的只是第四行的运行时错误(奇怪的是,前面的行是正常的):
2011-06-29 11:23:57.641 Esker Monitor[94138:207] -[UITableViewCell setAdjustsFontSizeToFitWidth:]: unrecognized selector sent to instance 0x4e889e0
2011-06-29 11:23:57.642 Esker Monitor[94138:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell setAdjustsFontSizeToFitWidth:]: unrecognized selector sent to instance 0x4e889e0'
Run Code Online (Sandbox Code Playgroud)
Similiar标签属性修改,如label.numberOfLines = 1;和label.minimumFontSize = 7.0;使程序崩溃了.
有什么微妙的我在这里不明白吗?
如果要访问标准UITableViewCell中构建的标签,请使用单元格的textLabel属性:
UILabel *label = cell.textLabel;
...
Run Code Online (Sandbox Code Playgroud)
如果您将自定义标签添加到单元格,我建议使用一些非零标签,因为0是默认标签值
[cell viewWithTag:0];
Run Code Online (Sandbox Code Playgroud)
可以返回任何带有0标记的子视图 - 不需要标记.因此,为您的标签指定一些非零标签,并将其添加到单元格的contentView,而不是直接添加到单元格 - 这将帮助您避免一些布局问题,例如当单元格进入编辑状态时.稍后您可以通过以下方式访问该标签:
UILabel *label = (UILabel*)[cell.contentView viewWithTag:kSomeNonZeroTag];
Run Code Online (Sandbox Code Playgroud)
text和textColor方法仍然有效的原因是UITableViewCell实际上实现了这些方法(它们起源于单元格未公开公开其标签并且自SDK 3.0以来不推荐使用的时候)
| 归档时间: |
|
| 查看次数: |
1554 次 |
| 最近记录: |