Myx*_*tic 2 objective-c uitableview ios autolayout
问题
我试图根据某些条件调整放置在UITableViewCell内的UIButton的一些约束.
我在datasource方法中这样做cellForRowAtIndexPath.但是,看起来我的单元格的框架总是回来(0, 0, 0, 0),这意味着我无法获得任何子视图的约束来调整它们,除非我滚动.
我曾经尝试过什么
我创建并上传了一个简单的项目,试图找出问题所在.以下代码来自cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TestCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TestCell"];
cell.label.text = [NSString stringWithFormat:@"%lu", indexPath.row];
NSLog(@"CELL FRAME: %f, INDEXPATH: %lu, CONSTRAINTS: %lu", CGRectGetWidth(cell.frame), indexPath.row, cell.label.constraints.count);
return cell;
}
Run Code Online (Sandbox Code Playgroud)
结果
当我运行项目时,我看到以下日志:
CELL FRAME WIDTH: 0.000000, INDEXPATH: 0, CONSTRAINTS: 0
Run Code Online (Sandbox Code Playgroud)
但是,一旦我滚动,我开始看到类似的东西:
CELL FRAME WIDTH: 320.000000, INDEXPATH: 7, CONSTRAINTS: 2
Run Code Online (Sandbox Code Playgroud)
题
我在这做错了什么?如何调整单元格子视图的约束来调整它们,而不必先滚动?
提前致谢.
rma*_*ddy 10
调整tableView:willDisplayCell:forRowAtIndexPath:方法中的单元格.
在该cellForRowAtIndexPath:方法中,单元格的框架尚未设置,单元格尚未添加到表格视图中.太早了.
更好的是将责任放在TestCell类的实现中.
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |