UITableView セルのサブクラスを作成しています。
セルの contentView、backgroundView、および selectedBackgroundView をすべて単一の CGInsetRect (tableView に設定された 180.0 rowHeight) に設定しました。私の最初の問題は、挿入長方形を画像ビューに割り当てようとしたときです。画像は右に +-5 ポイント押し込まれます。そのため、rect を手動で作成することにしました。
次に、テキスト ラベルのサイズと色を設定しましたが、割り当てた特定の属性は、セルをクリックするまで表示されません。
テキスト ラベルを手動で設定しないと、画像によって textLabel が画面外に押し出され、1 文字と "..." 省略記号のみが表示されます。
変更を加えるたびに何かが壊れてしまい、私のコードが何らかの自動システムと競合しているようです。非常に苛立たしく、何をすべきか、またはこれをデバッグする方法さえわかりません。ストーリーボードを使用した UITableViewCell の layoutSubviews の落とし穴に関するヒントは、何か重要なものが欠けているように見えるので、素晴らしいでしょう。
私のレイアウトサブビュー
-(void) layoutSubviews
{
[super layoutSubviews];
const CGRect insetRect = CGRectInset( self.bounds, 7, 4 );
self.contentView.frame = insetRect;
self.backgroundView.frame = insetRect;
self.selectedBackgroundView.frame = insetRect;
self.imageView.frame = CGRectMake(0, 0, 306, 172);
self.textLabel.frame = CGRectMake(0, 132, 306, 40);
self.textLabel.backgroundColor = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:0.5];
self.backgroundColor = [UIColor clearColor];
self.contentView.backgroundColor = [UIColor whiteColor];
self.selectedBackgroundView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.1];
}