プロパティとしていくつかの UILabels、UIButton、および NSBlock を含むカスタム (サブクラス化) UITableViewCell があります。このサブクラスは と呼ばれExploreCell
ます。2 つのプロパティは UILabels でwaitLabel
、lastUpdateLabel
それぞれ と という名前が付けられています。
の内容lastUpdateLabel
が nil または空白の場合、つまりを (Y 軸上で) 垂直方向に 10 ピクセル@""
移動する必要があります。メソッドに入れている次のコードに示すように、waitLabel
いくつかのオブジェクトをチェックすることでこれを行っています。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 ピクセル下に移動する基準に一致する 1 つまたは 2 つのセルwaitLabel
のフレームが実際に変更されることを意味します。
なぜこれが発生するのか、どのように修正できるのか教えてください。