我想在UILabel
内更新UITableViewCell
框架(只是origin.y位置),具体取决于某个条件,因此,我使用该代码来实现这一目标:
- (void)tableView:(UITableView *)tableView willDisplayCell:(EventsCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
if([[arrayofImages objectAtIndex:indexPath.row]isEqualToString:@"no image"]){
[cell.imageImageView removeFromSuperview];
cell.imageImageView=nil;
cell.yearLabel.frame=CGRectMake(cell.yearLabel.frame.origin.x,42, cell.yearLabel.frame.size.width, cell.yearLabel.frame.size.height );
}
}
问题是我需要滚动UITableView
单元格才能更新UILabel
的框架(将y位置设置为42)。
为什么即使在创建单元格之前执行此代码也存在此问题(在willDisplayCell
委托方法中)。
谢谢你的帮助。
答案 0 :(得分:1)
这可能是由于自动布局造成的。如果不是更改框架,而是将IBOutlet设置为标签和单元格顶部之间的约束,并修改其常量值,它应该正常工作(topCon是我对约束的出口)。
- (void)tableView:(UITableView *)tableView willDisplayCell:(EventsCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
if([[arrayofImages objectAtIndex:indexPath.row]isEqualToString:@"no image"]){
[cell.imageImageView removeFromSuperview];
cell.imageImageView=nil;
cell.topCon.constant = 42;
}
}