1

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];
}
4

0 に答える 0