使用UIPageControl的UIViews

And*_*y B 6 iphone objective-c uiview uipagecontrol ios

在页面控制方面我是初学者,这就是为什么我不确定100%我的标题是否与我想要的一致.我想创建一个UIPageControl,当用户在屏幕上滑动时,视图将切换到另一个视图,屏幕底部的UIPageController将自动更新.另外,为了让我的请求更加令人困惑,我希望屏幕底部有一个标签栏,随着视图的变化而保持不变.

一个很好的例子是The Iconfactory的Ramp Champ:http: //img.slidetoplay.com/screenshots/ramp-champ_5.jpg

底部的栏保持放置,而屏幕上的其余项目移动.最简单的方法是什么?

编辑:我知道我必须使用UISrollView,我只是不知道如何实现它...

Mat*_*ing 22

我相信你所寻找的实际上是一个将pagingEnabled设置为YES 的UIScrollView.您可以将滚动视图保留为常规UITabBar上方的视图.你将使用UIPageControl获取小点.当UIScrollView通过实现滚动视图的适当委托方法(可能是-scrollViewDidScroll:)滚动到页面时,可以以编程方式更新它.

假设您有两个ivars:scrollView和pageControl.当您知道滚动视图将包含多少页面时,您可以设置scrollView的contentSize.它应该是scrollView的边界的倍数.例如,如果页面数是静态的,您可以在-viewDidLoad中对其进行硬编码...

- (void)viewDidLoad {
    // Any other code.

    scrollView.pagingEnabled = YES;
    scrollView.contentSize = CGSizeMake(scrollView.bounds.size.width * 3, scrollView.bounds.size.height); // 3 pages wide.
    scrollView.delegate = self;
}
Run Code Online (Sandbox Code Playgroud)

然后,更新你的小点......

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    CGFloat pageWidth = scrollView.bounds.size.width;
    NSInteger pageNumber = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    pageControl.currentPage = pageNumber;
}
Run Code Online (Sandbox Code Playgroud)