我是页面控制的初学者,所以我不确定标题是否符合我的要求,所以我不确定100%。我想制作一个UIPageControl,当用户在屏幕上滑动时, View 将切换到另一个 View ,并且屏幕底部的UIPageController会自动更新。另外,为了使我的请求更加困惑,我希望屏幕底部的选项卡栏随着 View 的变化而保持不变。

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

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

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

最佳答案

我相信您正在寻找的实际上是一个UIScrollView,其pagingEnabled设置为YES。您可以将滚动 View 保留为常规UITabBar上方的 View 。您将使用UIPageControl来获取小点。您可以通过实现适当的滚动 View 委托(delegate)方法(例如-scrollViewDidScroll :),在UIScrollView滚动到页面时以编程方式对其进行更新。

假设您有两个ivars:scrollView和pageControl。当您知道滚动 View 将有多少页时,可以设置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;
}

然后,更新您的小点...
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

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

10-01 16:24