iphone - UIPageControl setCurrentPage - UICollectionView iOS6

标签 iphone xcode ios6 scrollview pagecontrol

我是 XCode 新手,因此需要您的帮助。 我使用 UIPageControl 来显示我的 Collection View 中的哪个单元格现在可见。

问题是获取可见单元格:

我认为在这个方法中

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

我应该更新当前页面。但如何获取当前页面呢?

感谢您的帮助! :-)

最佳答案

页面可以定义为偏移量与大小之间的比率。

- (NSInteger)horizontalPageNumber:(UIScrollView *)scrollView {
    CGPoint contentOffset = scrollView.contentOffset;
    CGSize viewSize = scrollView.bounds.size;

    NSInteger horizontalPage = MAX(0.0, contentOffset.x / viewSize.width);

    // Here's how vertical would work...
    //NSInteger verticalPage = MAX(0.0, contentOffset.y / viewSize.height);

    return horizontalPage;
}

有几种方法可以触发此操作。您可以在每个scrollViewDidScroll 上完成该工作,但这有点过多。更好的方法是在拖动完成并且不再减速时运行它,或者在减速结束时运行它,如下所示:

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    self.page.currentPage = [self horizontalPageNumber:scrollView];
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    if (!decelerate) self.page.currentPage = [self horizontalPageNumber:scrollView];
}

关于iphone - UIPageControl setCurrentPage - UICollectionView iOS6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15764144/

相关文章:

ios - 移动快速结帐 Paypal

iphone - 访问 bool 值表单 Sqlite 数据库

iphone - NSString 的阴影效果

ios - 将现有的 iOS 应用程序项目拆分为静态库和应用程序皮肤项目

ios - 如何在我的网络服务中显示加载 View Controller

ios - 根据表中出现的内容重新排序 MutableArray

html - 如何在我们的网站上使用 ios 的智能应用程序横幅

iphone - 如何在 UITableView 行之间创建工具栏

cocoa - 在命令行工具中使用框架

ios - 从 URL 下载图像时 Nsurlsession 内存泄漏