2017-09-02 6 views
2

UIScrollViewを中心にズームしていく従来の方法は、スクロールビューのレイアウトを混乱させることです。これは、デリゲートを使用するか、UIScrollViewをサブクラス化することによって実行できます。 WWDC 2017のビデオ201(https://developer.apple.com/videos/play/wwdc2017/201/)でUIScrollView contentLayoutガイドとズームを中心に

新しい(iOS版11)contentLayoutGuideは、新しい方法を中心に滞在しながら、ズームの問題を解決することを主張があります:彼らは、コンテンツのレイアウトの中心にコンテンツビューを中央に言うが、ガイド。

私はそれをしており、問題を解決していません。私はうまくズームしていますが、ズームスケールが1より小さい場合は、コンテンツビューは常に左上に移動します。

ビデオのこの主張が実際に意味することを誰もが理解していますか? iOS 11ではどのようにして過去に比べてズームを簡単に行うことができますか?

EDIT私は実際に彼らは、この問題を解決する方法を示しと、それはなかった主張私のバグ報告に応答して、アップルからサンプルプロジェクトを受け取りました!だから私は、Appleが彼らがここで何を話しているのか分からないと結論づけている。

+0

Iスケーラブルビューの中心を 'frameLayoutGuide'の中心に固定することで、中心のズームを実装することができますが、問題は解決しません結果は明らかにスクロール可能ではないためです。 – matt

+0

あなたはこれを理解したことがありますか?私は同じ問題で苦労しており、これを得た人はいません。 – IMcD23

+0

@ IMcD23それは本当に問題ではありません。中央に留まっている間は、長い間確立されたズーム方法があります。私の質問の問題は、 'contentLayoutGuide'を含むいくつかの新しい方法があるというビデオの主張です。私はまだその主張を支持する兆候は見つかっていない。 – matt

答えて

-1

スクロールビューのcontentSizeが定義されていないため、ビューは左上に表示されます。 iOS 11で新しい自動レイアウトガイドを使用する場合は、contentSizeを定義する必要があります。

次の制約を追加します。

scrollView.contentLayoutGuide.widthAnchor.constraint(equalTo: scrollView.frameLayoutGuide.widthAnchor), 
scrollView.contentLayoutGuide.heightAnchor.constraint(equalTo: scrollView.frameLayoutGuide.heightAnchor) 

私は一定の幅/高さcontentViewを持っていたとき、これは、私のために働いて、次の追加の制約:

// give the centerView explicit height and width constraints 
centerView.widthAnchor.constraint(equalToConstant: 500), 
centerView.heightAnchor.constraint(equalToConstant: 500), 

// pin the center of the centerView to the center of the scrollView's contentLayoutGuide 
centerView.centerXAnchor.constraint(equalTo: scrollView.contentLayoutGuide.centerXAnchor), 
centerView.centerYAnchor.constraint(equalTo: scrollView.contentLayoutGuide.centerYAnchor) 
+0

私はあなたのコードを試しました(私は実際にそれを試していましたが、コピーして貼り付けて間違いがないようにしました)、うまくいきませんでした。ズームアウトすると中心に留まらず、一貫してスクロールする。あなたが私に言っていないことが起こっているはずです。 GitHubにデモを投稿できますか?どうも。 – matt

関連する問題