我有一个自定义(子类)UITableViewCell,其中包含一些UILabels,UIButton和NSBlock作为属性。这个小类叫做ExploreCell
。其中两个属性是UILabels,分别命名为waitLabel
和lastUpdateLabel
。更新UITableViewCell子视图的框架没有影响
当lastUpdateLabel
的内容为零或为空时,即@""
,我需要将waitLabel
垂直向下(在Y轴上)移动10个像素。我通过检查NSDictionary
中的一些对象来执行此操作,如下面的代码所示,该代码已放入-tableView:cellForRowAtIndexPath:
方法中。
CGRect frame = cell.waitLabel.frame;
if ([[venue allKeys] containsObject:@"wait_times"] && ([[venue objectForKey:@"wait_times"] count] > 0)) {
frame.origin.y = 43;
}
else {
frame.origin.y = 53;
}
[cell.waitLabel setFrame:frame];
但是,此代码间歇性地工作,并试图呼吁-setNeedsLayout
,仍然无法正常工作。间歇地说,我的意思是在滚动几次之后,一个或两个符合标准的单元格将单元格的原点向下移动10个像素,实际上它们的框架已更改。
请你可以告诉我为什么会发生这种情况,以及它如何修复。
你把那个代码放在哪里? – Uby 2013-03-20 21:35:12
-cellForRow .... – 2013-03-20 21:36:00
您是否使用自动布局? – rdelmar 2013-03-20 21:45:08