iPhone UITableView + Rotation =消えるテーブル?
-
05-07-2019 - |
質問
Appleの「詳細の編集」を複製しようとしています。グループ化されたUITableViewが1行で表示され、セル全体が1つの大きなUITextViewである機能。たとえば、連絡先アプリに移動して連絡先を編集し、メモフィールドを追加します。それが私が目指していることです。
私が抱えている問題は、電話を回転させるときです。初めて回転するとき(ポートレート->横向き)、すべてが正常です。しかし、後ろに回転すると、テーブルは消えます。理由はわかりませんが、解決策を見つけるために頭を壁にぶつけています。私は文字通り何日も無駄にこれに取り組んできました。
最初に試した方法は、tableView:heightForRowAtIndexPathを実装し、横かどうかに基づいて異なる高さを返すことでした。
私が試した別の実装では、コントローラーに2つの完全に独立したビューがありました:
UIView * landscape;
UIView * portrait;
willAnimateRotationToInterfaceOrientationでこれらを切り替えます。サイコロもありません。
また、self.tableViewの境界とフレーム、self.tableview.contentOffsetをいじくり回そうとしましたが、どれもまったく効果がないようです。
グーグルに失敗して、ローテーションで何をしたいのかを正確にすでに示している例はありますか?これは非常に一般的な状況だと思いますが、何も見つかりませんでした。
だから、私の質問は、他の誰かが以前にこのようなものに遭遇したことがあり、少なくともどこを見るべきかを正しい方向に向けることができると思いますか?または、私が見落としているかもしれないいくつかの一般的な落とし穴を知っていますか?私はちょうどそれをねじ込み、詳細の編集ビューでの回転を許可しないと言いますが、それがユーザーが横向きキーボードを必要とする可能性が最も高いときを考慮して、可能であればそれを持ちたいです...
誰でも提供できるヘルプをありがとう。
正しい解決策はありません
他のヒント
おそらく、Interface Builderでオブジェクトを固定した方法に関係しています。 Interface Builderに移動して、tableviewのインスペクターを表示します。矢印のセットがあるのは3番目のタブだと思います。矢印の内側のセットはオブジェクトの伸縮性を制御し、矢印の外側のセットはアンカーを制御します。左右をロックし、上部または下部のいずれか(またはフルスクリーンの場合は両方)を選択します。
Interface Builderでビューを直接テストできます(ビューの回転を含む)。そのため、新しいソリューションが機能することを確認することをお勧めします。