私は単純なUITableViewController
サブクラスをいくつか持っています(UITableViewCell
)。私は各セルでimageViewとtextLabelを使用しています。UITableViewCellのtextLabelフレームがデバイスローテーションのために変更されないようにする
デバイスをポートレート/ランドスケープに/から回転させると、textLabelのフレームが変更されます。この変更は縦方向から横方向の回転では問題ありません。しかし、風景から肖像画に戻って回転するとき、フレームは「間違った」値(テキストは不適切に正当化されます)に変わります。
どうすればこの問題を解決できますか?
私はimageViewsのフレームが変化するのと同様の問題がありました。私はUITableViewCell
をサブクラス化し、正しい値にフレームを設定することでこれを解決しましたlayoutSubviews
。ここに覚えておく必要があるのはCGRect
という値が1つだけです(私はハードコードしています)。
textLabelは異なります:私は2つのフレーム(各方向に1つ)を追跡する必要があり、フレーム値はtextLabelのテキストに依存すると思います。したがって、サブクラスUITableViewCell
に2つのCGRect
インスタンス変数を追加することはオプションです。しかし、もっと簡単な解決法があると思います。