私は、3つのラベルとその中のimageViewを含む動的なセルを持つTableViewControllerを持っています。私はストーリーボードで作成しました。これは次のようになります...TableViewControllerのセル項目の制約の制御
- Label1
oImg - Label2
- Label3
さらに、Label2はimageViewに垂直に中央揃えされています(constraint-Aと呼ばれます)。他のラベルもLabel2に整列されています。
私がしようとしているのは、TableViewControllerのcellForRowAtIndexPath
では、Label3が空であるかどうかをチェックし、Label2を下に移動し、Label1で制約を前に設定しておく(同様に下に移動する)。
最初のオプションとして、制約-AをTableViewControllerに接続しようとしましたが、TableViewCellであるため、制約コンセントをTableViewControllerに接続できません。
はその後、私はこれを達成するための適切な方法である
cell.Label2.frame.origin.y += 5
cell.Label1.frame.origin.y += 5
何..それらを下に移動手動でみましたが、cellForRowAtIndexPath
の残りの部分は大丈夫働くのに対し、それが唯一の1行(LABEL3ない最初の1)に影響を与えるだ不気味? (したがって、制約Aを制御するか、Label2を手動で移動してLabel1を移動することができます)
それはあなたの制約に依存します。 ** Constraint Outlet **を* YourCusstomCell Class *にすることができます。 cellForRowでは、Label3のデータソースが空であるかどうかを確認できます。このメソッドでは、制約を変更します。 私は制約を作るために、すべてのラベルと画像のアウトレットを作る必要があると思います。 –
そしてあなたの行の高さが固定されているかどうか、あなたのラベルが1行か複数行かどうかというあなたの要求に依存します。 –
Label3を設定し、テキストが空のときにimageViewの中央に垂直に削除します。label2自動的に下に移動します –