まず第一に、これが重複していると言わないでください。私はこの質問が何度も尋ねられ、答えられたことを知っていますが、他のみんなの解決策を読んだ後でも、私のコードを機能させることができないようです。
UILabelサブビューを含むUITableViewCellに問題があります。UILabelは、特定のセルからスクロールして戻るまで、特定のセルに表示されない場合があります。セルをカスタマイズするために使用しているコードは次のとおりです。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *label;
if (cell == nil) {
// cell is nil, create it
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 33)];
label.tag = 888;
} else {
label = (UILabel*)[cell.contentView viewWithTag:888];
[label removeFromSuperview];
}
label.text = @"Label Text";
label.backgroundColor = [UIColor clearColor];
[label sizeToFit];
label.center = CGPointMake(cell.contentView.frame.size.width-label.frame.size.width/2-20, cell.contentView.frame.size.height/2);
[cell.contentView addSubview:label];
// customize cell text label
cell.textLabel.text = @"Cell Text";
cell.textLabel.textColor = [UIColor darkGrayColor];
return cell;
}
dequeueReusableCellWithIdentifier:CellIdentifierがnil以外の値を返すと、ラベルが正しく表示されるように見えますが、戻り値がnilであり、新しいセルをインスタンス化する必要がある場合は表示されません。
なぜこれが起こっているのか誰かが知っているなら、助けていただければ幸いです。