Photoscrollerアプリ(iPhone WWDC-104 Photos App)でuiscrollview画像は、presentModalViewControllerを使用して呼び出されたときに右にシフトします
-
27-09-2019 - |
質問
写真のuiscrollviewを示すWWDC-104ビデオを見てきました。サンプルコードもダウンロードしました。私のアプリでは、構造は次のとおりです。
(ルートクラス)クラスA --->クラスB ----------> PhotoViewController(ScrollViewを含む)
クラスBのPresentModalViewControllerメソッドを使用して、PhotoViewControllerクラスを呼び出しています。
しかし、スワイプするたびに、新しい画像がビューの右にシフトします。画像の左側に黒い垂直ストリップが表示され、スワイプごとに広がります。したがって、6〜8枚の画像の後、ビューは完全に黒くなります。
他のコードを書いていません。クラスをコピーしました。
PhotoviewControllerクラスがロードされた最初のクラスではない場合、なぜこれが起こるのですか? ScrollViewに設定する必要があるプロパティはありますか?このビュー階層に間違いはありますか?
また、特定の画像から開始する方法(10番目の画像からの読み込み)?
どんな助け/提案も高く評価されます。
編集 :
最初の水平スワイプの後、
2番目の水平スワイプの後、
解決
アプリケーションで使用すると、PhotoViewControllerがUInavigationControllerによってプッシュされませんか?
それが問題です。NavigationControllerは、ScrollViewのフレームを変更し、PhotoViewControllerによって作成されたオフセットと拡張幅は、ビューが表示されるともう存在しません。
これを修正する最も簡単な方法は、PhotoviewControllerのビューを通常のUiviewに設定し、このUiviewのサブビューとしてScrollviewを追加することです。 NavigationControllerはこのビューのフレームを変更しますが、サブビューには触れません。
UIView * intermediateView = [[UIView alloc] initWithFrame:pagingScrollViewFrame];
[intermediateView addSubview:pagingScrollView];
self.view = intermediateView;
詳細については、この質問をご覧ください。写真アプリのようなギャップPagingEnabledを使用したuiscrollviewのページ間のギャップ
他のヒント
画像間マージンを考慮していないように思えます。リソースファイルもコピーしましたか?正しく思い出すと、彼らのScrollViewは「ページから外れて」延長し、画像間にマージンを与えました。