9

これに関するチュートリアルを検索して検索しましたが、探しているものはありません。Appleのサンプルを試してみましたが、色だけで、ビューにする方法がわかりません。私が探しているのは、ページ コントロールを表示しながらページングする画面だけです。スクロール ビュー ページを表示するたびに、完全に異なるビューを表示したいと考えています。テキストや画像が異なるのではなく、ビューが異なります。iPhone や ESPN Scorecenter アプリのホーム画面によく似ています。助けてください!ありがとうございました。

4

5 に答える 5

16

見つかった例は複雑で、これは私にとって読みやすいので、このユニバーサルソリューションを作成しました。コードは自明である必要があります。

- (IBAction)changePage:(id)sender {
    _pageControlUsed = YES;
    CGFloat pageWidth = _scrollView.contentSize.width /_pageControl.numberOfPages;
    CGFloat x = _pageControl.currentPage * pageWidth;
    [_scrollView scrollRectToVisible:CGRectMake(x, 0, pageWidth, _scrollView.frame.size.height) animated:YES];
}

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
    _pageControlUsed = NO;
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    if (!_pageControlUsed)
            _pageControl.currentPage = lround(_scrollView.contentOffset.x /
            (_scrollView.contentSize.width / _pageControl.numberOfPages));
}
于 2013-01-09T08:04:29.647 に答える
14

これは、状態を格納するための変数を必要とせずに @ReneDohan の回答と同じことを行います

- (IBAction)changePage:(id)sender {
    CGFloat x = self.pageControl.currentPage * self.scrollView.frame.size.width;
    [self.scrollView setContentOffset:CGPointMake(x, 0) animated:YES];
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView.isDragging || scrollView.isDecelerating){
        self.pageControl.currentPage = lround(self.scrollView.contentOffset.x / (self.scrollView.contentSize.width / self.pageControl.numberOfPages));
    }
}
于 2014-02-06T20:53:42.967 に答える
4

このフレームワーク : https://github.com/AdrianFlorian/AFImageViewerを試して、ページ コントロールを使用してスクロール ビューに画像を表示し、現在のページを示します。

まだドキュメントを追加していませんが、プロジェクトを複製すると例を見ることができます。

簡単にできます: - URL の配列 (画像の URL) を指定するだけで、別のスレッドでインターネットから画像をダウンロードします - UIImage オブジェクトの配列を指定します - デリゲートを実装し、各ページの画像を自分で管理します

于 2012-05-11T20:19:25.623 に答える
1

関連する質問があります: UIPageControl を使用して複数のビューを作成するにはどうすればよいですか? 、これを行うための本当に良い方法は、次のブログ投稿で説明されています: http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html .

于 2010-10-05T19:27:31.117 に答える
1

この質問のデモ プロジェクトを作成しました。訪問してください: https://github.com/lenhhoxung86/PageControlDemo

于 2014-03-20T08:44:52.690 に答える