0

現在、ストーリーボードで SWRevealViewController を使用していますが、最近まで見られなかった動作が見られます。

もともと、フロント ビュー コントローラーの 1 つで、UITableViewController を使用していましたが、問題なく動作しました。ただし、それを交換して、代わりに MKMapView と UITableView を持つ UIViewController に置き換える必要がありました。以前に UITableViewController で行ったように、[エディター] > [埋め込み] > [ナビゲーション コントローラー] を使用して、新しいビュー コントローラーをナビゲーション コントローラーに埋め込みました。

現在、新しいフロント コントローラーへの移行が2回目に発生したときに、コンテンツがプッシュ ダウンされることがわかりました。

ViewWillAppear メソッドにログを記録すると、次のようになります (ログ ノイズをふるいにかけるために編集されています...)。

第一印象

self.view - UIView: frame = (0 0; 320 568)
self.mapView - MKMapView: frame = (0 65; 320 128)
self.tableView - UITableView: frame = (0 193; 320 375)

二度目の登場

self.view - UIView: frame = (0 64; 320 504)
self.mapView - MKMapView: frame = (0 65; 320 128)
self.tableView - UITableView: frame = (0 193; 320 375)

したがって、子コントロールの X 座標と Y 座標は問題ないように見えます。両方の外観で同じです。ただし、View Controller のself.viewは 2 回目にプッシュ ダウンされます。

なぜこれが起こっているのか、それを修正するために何ができるのかについてのアイデアはありますか? viewWillAppear でビュー コントローラのビューを 0,0 にあからさまに設定してもうまくいきません。

前もって感謝します。

UPDATE うーん...どうやら問題は本当に:「ビューの原点が最初に 0,0 にあるのはなぜですか?」

SWRevealViewController のフロント ビューに表示されている他のビュー コントローラーにログオンすると、通常、0.64 で発信元が報告されます。ただし、最初のView Controllerが初めてロードされて表示されるのは0,0です...だから、今は何が起こっているのだろうと思っています。

4

2 に答える 2

1

この正確な問題に何時間も費やした後、解決策を見つけました。

最初のナビゲーション コントローラーでは、ナビゲーション バーを半透明に設定する必要があります。写真のように、「半透明」チェックボックスをオンにすることで、ストーリーボードでこれを行うことができます。

を確認してください

必要に応じて、ナビゲーション バーに色 (バーの色合い) を適用することもできます。

于 2014-06-27T09:36:03.643 に答える
0

わかりました...まあ...解決策を見つけました。ぎこちなく感じますが、機能します。

ビュー コントローラーのルート ビューを削除し、それを UIScrollView に置き換えてから、すべての構成コントロールをスクロール ビュー内に埋め込みました。

これは、View Controller チェーンのどこかで、「automaticallyAdjustsScrollViewInserts」がどこかで邪魔になっている可能性があることを示しています。それとも、自動レイアウトの癖ですか?

スクロールビューのハックは私にはあまり合わないので、誰かがアイデアを持っていれば、まだアイデアを受け入れていますが、今のところそれを受け入れます...

于 2014-05-12T19:34:37.510 に答える