0

私はいくつかの s を持つ単純なUITableViewControllerサブクラスを持っていUITableViewCellます。各セルで imageView と textLabel を使用しています。

デバイスを縦向き/横向きに回転すると、textLabel のフレームが変わります。この変更は、縦向きから横向きへの回転には問題ありません。ただし、横向きから縦向きに戻すと、フレームが「正しくない」値に変わります (テキストが不適切に調整されます)。

どうすればこれを解決できますか?

imageViews のフレームの変更に関して同様の問題がありました。UITableViewCellでフレームをサブクラス化して正しい値に設定することで、これを解決しましたlayoutSubviews。ここでCGRect、覚えておく必要がある値は 1 つだけです (ハードコードするだけです)。

textLabel は異なります。2 つのフレーム (向きごとに 1 つ) を追跡する必要があり、フレームの値は textLabel のテキストに依存すると思います。したがってCGRect、サブクラスに 2 つのインスタンス変数を追加することUITableViewCellはオプションです。しかし、もっと簡単な解決策があると思います。

4

1 に答える 1

0

問題はcell.textLabel.numberOfLines = 0;にありましたcellForRowAtIndexPath。3に設定numberOfLinesすると問題が解決しました。

self.textLabel.frame.origin.xまた、layoutSubviews でハードコードされた値を設定する必要がありました。

ここで何が起こっているのかを完全に理解しているかどうかはわかりません。

于 2011-12-17T18:58:11.333 に答える