首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的uipagecontrol第一次没有正确更新,而是第二次通过Xcode更新?

为什么我的uipagecontrol第一次没有正确更新,而是第二次通过Xcode更新?
EN

Stack Overflow用户
提问于 2016-08-17 05:03:47
回答 3查看 1K关注 0票数 0

我的UICollectionView中嵌入了一个UIPageControl。每个页面都有自己的指定页面,我将其拆分成集合视图单元格。当我滑动到第二页时,页面控制指示器保持为1,而当我滑动到第三页时,它会正确地更新为第三个指示器。当我滑动回到第2页时,页面控件现在显示了正确的指示器。这种情况每次都会发生,只在第二页发生。

下面是我的一些代码:

在具有集合视图的主控制器上,

代码语言:javascript
复制
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cellId", forIndexPath: indexPath) as! ItemImageCell

    if let imageURL = self.featuredItem.itemImageNames {
        cell.itemImageURL = imageURL[indexPath.item]
        cell.pageControl.currentPage = indexPath.item
        cell.pageControl.numberOfPages = imageURL.count
    }
    return cell
}

在cellView类中,

代码语言:javascript
复制
let pageControl: UIPageControl = {
    let pageControl = UIPageControl()
    pageControl.pageIndicatorTintColor = UIColor.grayColor()
    pageControl.currentPageIndicatorTintColor = UIColor.blackColor()
    return pageControl
}()

override func setupViews() {
    backgroundColor = UIColor.whiteColor()
    addSubview(pageControl)

    addConstraint(NSLayoutConstraint(item: pageControl, attribute: .CenterX, relatedBy: .Equal, toItem: self, attribute: .CenterX, multiplier: 1, constant: 0))

}

我没有正确地设置它吗?

编辑:

featuredItem模型类:

代码语言:javascript
复制
class FeaturedItem: NSObject {

    var itemImageNames: [String]?
    var itemTitle: String?
    var itemHighlight: String?
    var itemDescription: String?
    var itemURL: String?


}
EN

Stack Overflow用户

发布于 2016-08-17 11:38:05

在这篇文章中,我找到了我的问题的解决方案。

Why is not updated currentPage indicator on UIPageControl?

具体地说,我使用来自paulw11的解决方案的建议,将我当前的cellForItemAtIndexPath实现更改为以下内容:

代码语言:javascript
复制
func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {

    guard let myCell = cell as? ItemImageCell, imageURL = self.featuredItem.itemImageNames else {
        return
    }
    myCell.pageControl.numberOfPages = imageURL.count
    myCell.pageControl.currentPage = indexPath.item
}

以及在设置currentPage变量之前设置numberOfPages变量。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38984457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档