1

画像のサムネイル(その行に画像があるかどうかによって非表示になる場合と非表示になる場合があります)とその右側にtextViewがあるテーブルセルがあります。

とにかく、コードを必要とせずに画像が非表示にされたときに画像が撮影していた領域をカバーするために、textViewを左に拡張することはできますか?

または別の言い方をすれば、htmlでは非表示(visibility:hidden;)でレイアウトから削除(display:none;)しているので、view.hidden=NOはcssと同等のhidden;を実行しているように見えます。レイアウトからcssに相当するものを削除したい。

これに対するコードソリューションはありませんか?

ありがとう

4

2 に答える 2

2

はい、レイアウト制約のあるコードでこれを行うことができます。テキスト ビューとイメージ ビューの間に水平方向のスペースの制約がある場合は、IB で IBOutlet を作成し、コードでその定数の値を変更できます。したがって、cellForRowAtIndexPath: には、その行の画像があるかどうかをテストするための if 句がいくつかあります。

    if (indexPath.row %2 == 0) {
        cell.iv.hidden = YES;
        cell.imageViewToTextViewConstraint.constant = -48;
    }else{
        cell.iv.hidden = NO;
        cell.imageViewToTextViewConstraint.constant = 8;
    }

iv はセルの画像ビューへの出口であり、幅は 48 であるため、制約を -48 に設定すると、基本的にテキスト ビューが画像ビューの左側に拡張されます (画像ビューはまだそこにあり、非表示になっているだけです)。 . この例では、偶数行には画像がないように設定しています。奇数行には IB で設定した画像があります。

于 2013-02-21T17:53:42.230 に答える
1

NSLayoutConstraintいいえ。HTML / CSS レイアウトは非常に高度です。コンテンツをコードで設定するときに、textView フレーム (または を使用する場合は制約) を自分で処理する必要があります。

于 2013-02-21T17:35:23.207 に答える