0

複数のセクションがUITableViewあり、カスタムUITableViewCellサブクラスがテーブルに入力されています。これらのUITableViewCellサブクラス内でlayoutSubviews、ラベルの位置などをカスタマイズするために実装しています。

ビューの読み込み時に表示されるセルの最初のバッチを除いて、セルのすべてのサブビューが適切に調整されています。それらはストーリーボードでのレイアウトと同じですが、これは私が望んでいるものではありません。例えば:

http://i.stack.imgur.com/L5GJh.png

注:緑とオレンジの境界線は、ラベルのサイズが変更されているかどうかを視覚的に確認するためのものです。

スクロールすると、表示されるすべての新しいセルに、プログラムしたとおりのサブビューが表示されlayoutSubviewsます。表示されているセルの最初のバッチに関しては、それらを画面外にスクロールしてから再びオンにすると、サブビューが完全にレイアウトされます。例えば:

http://i.stack.imgur.com/jgjch.png

内で、メソッドがセルを返す前tableView: cellForRowAtIndexPath:に呼び出します。[cell layoutIfNeeded]これを に変更すると[cell layoutSubviews]、逆のことが起こり、表示されているセルの最初のバッチが本来あるべきように配置されますが、スクロール時にロードされるすべてのセルが適切に配置されません。

運が悪かったので[cell layoutIfNeeded]中に入れようとしました。[tableview: willDisplayCell:これを修正する方法についてのアイデアはありますか?

前もって感謝します!

4

1 に答える 1

0

これは、自動レイアウトを有効にしてレイアウト コードでフレームを設定した場合に見られる動作です。これはうまくいきません。自動レイアウト システムはフレームの設定を担当し、設定した値を上書きします。

制約を使用してレイアウトを指定するか、自動レイアウトをオフにする必要があります。

于 2013-06-29T19:06:20.773 に答える