我有一个自定义UITableViewCell,它有两个元素。 UIView和UILabel。单元格用于投票,因此我希望能够根据投票更改UIView的尺寸。我目前正在cellForIndexAtPath方法中设置UIView的框架。 UIView的框架正在改变校正(因为我在3个位置检查以确保使用NSLog)但在屏幕上显示后没有反映在单元格上。有谁知道为什么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));
希望这有助于更多
答案 0 :(得分:0)
我对UITableView的幕后流程没有透彻的了解,但是我发现当我的UITableViewCell子类似乎没有按预期工作时,我可以移动尽可能多的代码到子类的layoutSubviews方法而不是在UITableViewController的cellForRowAtIndexPath中调用它有帮助。