以下の写真があるアプリのレイアウトを再現したいと思います。上部にナビゲーション バーがあり、ページ コンテンツが中央にあります。UIScrollViews、UIPageControl、PageViewControllers など、コンテンツをページングする方法をいくつか調べましたが、このレイアウトを完全に再現することはできないようです。私が見つけたほとんどのチュートリアルも、iOS7 用に更新されていません。すべての入力は大歓迎です。
ピクチャー:
以下の写真があるアプリのレイアウトを再現したいと思います。上部にナビゲーション バーがあり、ページ コンテンツが中央にあります。UIScrollViews、UIPageControl、PageViewControllers など、コンテンツをページングする方法をいくつか調べましたが、このレイアウトを完全に再現することはできないようです。私が見つけたほとんどのチュートリアルも、iOS7 用に更新されていません。すべての入力は大歓迎です。
ピクチャー:
開始するのに役立ついくつかのリソースを次に示します。
Apple のドキュメントには、 を使用してページング スクロール ビューを実装する方法の非常に良い例があります。こちらのPhoto Scroller サンプル コードUIPageViewController
を参照してください。そこから始めることをお勧めします。
また、Apple の Photo Scroller の例をサブクラス内にロードするように変更するコードが githubにあります。UIPageViewController
UIViewController
これは、Ray Wenderlich チームによる、ページング スクロールビューの設定方法に関する優れたチュートリアルです: UIScrollView を使用してコンテンツをスクロールおよびズームする方法
また、役立つと思われるページング スクロール ビューに関するいくつかの質問にも回答しました。ここ、ここ、ここ、ここを参照してください。
最初に 0 に設定された int インスタンス変数を持っているだけです。IB ですべてを完全にレイアウトしたい場合は、こちらをご覧ください: How to add objects to a UIScrollView that extends beyond UIView from Storyboard?
ページングがいつ発生したかを知るには、次を使用します。
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
CGFloat pageWidth = self.scrollview.bounds.size.width;
curIndex = floor((self.scrollview.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
if (curIndex == lastIndex) return;
lastIndex = curIndex;
//increment pager and do whatever else...
}