1

我有一个自定义 UITableViewCell 有两个元素。一个 UIView 和一个 UILabel。该单元格用于投票,因此我希望能够根据投票更改 UIView 的尺寸。我目前正在 cellForIndexAtPath 方法中设置 UIView 的框架。UIView 的框架正在更改更正(因为我正在检查 3 个位置以确保使用 NSLogs),但在它们显示在屏幕上后没有反映在单元格上。有谁知道为什么 UIView 的框架会说它已经改变但是在显示时它会保持在单元格的框架大小?

编辑

NSLog(@"before: %@",NSStringFromCGRect(cell.voting_scale.frame));
[cell.voting_scale setFrame:CGRectMake(0.0, 0.0, width, row_dim.height+10.0)];
[cell.voting_scale setBounds:CGRectMake(0.0, 0.0, width, row_dim.height+10.0)];
[cell.voting_scale setClipsToBounds:true];
NSLog(@"after: %@",NSStringFromCGRect(cell.voting_scale.frame));

希望这有助于更多

4

1 回答 1

0

我对 UITableView 的幕后流程没有透彻的了解,但我发现当我的 UITableViewCell 子类似乎没有按预期工作时,我会尽可能多地将代码移动到 layoutSubviews子类的方法而不是在 UITableViewController 的 cellForRowAtIndexPath 中调用它会有所帮助。

于 2012-09-27T19:13:55.827 回答