3

私はUIViewController次の構造を持つを持っています:

View -> ScrollView -> View -> あらゆる種類のもの

スクロールビュー内のビュー内に「あらゆる種類のもの」を配置するのが最善であると読みました。iPhone 5 をサポートして AutoLayout を使用しなければならなくなるまで、すべてが完璧に機能していました。現在、スクロールビューは私の存在の悩みの種になっています。

スクロールビューを適切にスクロールするにはどうすればよいですか? あらゆる方法を試してみましたが、単に正しく機能しないか、機能する場合は常に一番上にスクロールしたい場合や、画面に戻るときにコンテンツのオフセットが間違っている場合があります。

現在、スクロールビューを半機能にするために次のものがあります。

public override void ViewDidLayoutSubviews()
{
    base.ViewDidLayoutSubviews();
    View.LayoutIfNeeded();
    scrollView.ContentSize = scrollView.Subviews[0].Frame.Size;
}

AutoLayout を使用してこれを行う正しい方法は何ですか? そんなに難しくないはず!IBまたはコードでそれを正しく行う方法が必要です...

4

4 に答える 4

0

あなたが行っている機能は不要だと思います。おそらく、Autolayout システムがあなたのビューで達成しようとしていることに関して、あなたが見逃しているものがあるでしょう。

いろいろ調べてみると、いくつかのスレッドが見つかりました。

thisがあり、受け入れられた解決策は、を使用してレイアウトに contentSize を変更することviewDidLayoutSubviewsです。ハッキーなようです。

全体として、AutoLayoutで ScrollViews を使用して行うことの一般的な説明を次に示します。Apple が ScrollViews を正しく作成する方法の例をいくつか示している iOS 6 リリース ノート (UIScrollView を検索) へのリンクです。きっとそれで対処できると思います。

また、あなたの質問からは完全には明らかではありませんが、レイアウト制約の一部が壊れている可能性があると思われる場合は、デバッガーでこの出力を確認できます。どの制約を満たすことができず、その理由を正確に示したステートメントの大きなブロックです。 、解読した後、問題の原因を示している可能性があります。システムをまったく使用していないように聞こえるので、それはまったく関係がないかもしれませんが、それはあなたが持っていない可能性のあるデータです.

幸運を!

于 2013-07-05T02:02:44.153 に答える