2

いくつかのラベルとボタンを含む単純なビューを提示します。これらはすべて の中にあり、UIScrollView自動レイアウトを使用してレイアウトされています。

このボタンは、閉じるためのナビゲーション項目を含む別のビューを表示します。

ただし、却下された後は、元の内容UIScrollViewが相殺されます。不思議なことに、オフセットされる量は、プレゼンテーション時のスクロール位置に関連しているようです。

ここにあるデモ プロジェクトは、この問題の小さな例です。iPhone シミュレーターで実行し、一番下までスクロールして「モーダル」ボタンを使用します。モーダルのスクロールバックの試みを却下した後、問題は明確になるはずです。

または、下の画像のスクロール バーを参照して問題を確認してください。

プレゼンテーションの前に

プレゼンテーションの前に

プレゼンテーション後

プレゼンテーション後

4

2 に答える 2

4

私は AutoLayout の専門家ではありませんが、ラベルとボタンの制約をself.viewの代わりに追加して修正しましたself.scrollView

例えば:

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[l1]"
                                                                  options:0
                                                                  metrics:nil
                                                                    views:@{@"l1":self.l1}]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[l1]"
                                                                  options:0
                                                                  metrics:nil
                                                                    views:@{@"l1":self.l1}]];

なぜこれで修正されるのか...わかりません:D

于 2013-08-05T15:22:43.983 に答える