iphone - 带有 UIPageControl 的 UIView

标签 iphone objective-c ios uiview uipagecontrol

在页面控制方面,我是初学者,这就是为什么我不能 100% 确定我的标题是否符合我的要求。我想制作一个 UIPageControl,当用户在屏幕上滑动时, View 会切换到另一个 View ,并且屏幕底部的 UIPageController 会自行更新。此外,为了让我的请求更加困惑,我想要在屏幕底部有一个标签栏,它会随着 View 的变化而保持不变。

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

底部的栏保持不动,而屏幕上的其他项目移动。最简单的方法是什么?

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

最佳答案

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

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

关于iphone - 带有 UIPageControl 的 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4763241/

相关文章:

iphone - 自定义事件指示器弹出窗口

ios - 如何将 NSObject 模型类转换为 NSManagedObject 的子类?

ios - Swift 中开关盒的详尽条件

ios - 快速打开特定号码的 Whatsapp

ios - 找不到“ReactNativeNavigation/ReactNativeNavigation.h”文件

iphone - 从另一个 View Controller 的内存中杀死 View / View Controller

iphone - NSDate 日期返回的时间比应有的少 2 小时

iphone - 来自 NSString 的 NSData

ios - 如何使用自动布局移动标签并为更改设置动画?

ios - 执行 segue 时 View 出现两次