UITableViewCell
カスタムサブタイトルにあるラベルの束のサイズを計算する方法があります。これはUIPopoverController
です。ユーザーがデバイスを回転させると、サイズを再計算し、テーブルを再描画して新しいサイズを使用する必要があります。ローテーションを検出しようとしたすべての方法は、価値が下がっているか、呼び出されていないか、適切なタイミングで呼び出されません。デバイスが回転してサイズを再計算できるときに自動的に呼び出されるメソッドはありますか?iOS 7のローテーションでサブビューサイズを再計算
編集:私は試してみましたが、なぜそれが動作しないもの:
shouldAutorotate
- 呼び出されません - どうやら減価償却。layoutSubviews
- 呼び出されますが、私はここで[self.tableView reloadData]
しようとすると、私は無限ループにUIDeviceOrientationDidChangeNotification
ためNSNotificationCenter
オブザーバー立ち往生 - 私のコントローラは、それが新しい次元だ知っているので、私はここに を私のサイズを再計算することはできません前に呼び出されますが
[self.tableView setNeedsDisplay]
layoutSubviews
- 表の再描画を促しません。didRotateFromInterfaceOrientation
- 呼び出されません - 明らかに償却されます。
編集2:私は
をやろうとしているかについての詳細は、私が「行-と-列」スタイルテーブルを模倣しようとしている、と模倣するラベルをラインアップしています列。サイズを再計算すると、テーブルのすべての行をループし、その行の各「列」をループします。私は各列の幅を取得し、各列のすべての行の最大幅を追跡します。次に、幅とフォントサイズの間隔を操作して、すべての列に最も広いラベルがある行が画面に収まるようにします。
layoutSubviews? – ChrisH
あなたはどの方法を試しましたか? shouldAutorotateは推奨されていません。 –
@ChrisH:私はそこに置くことができますが、 '[self.tableView reloadTable];を試そうとすると、無限ループに陥ります。 – GeneralMike