ios - 为什么我的 uipagecontrol 第一次没有正确更新,但是第二次通过 Xcode 更新了

标签 ios swift xcode uicollectionview uipagecontrol

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

这是我的一些代码:

在具有 Collection View 的主 Controller 上,

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 类中,

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 模型类:

class FeaturedItem: NSObject {

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


}

最佳答案

其实解决办法很简单。 您需要先分配 numberOfPages,然后分配 currentPage。

所以把它们翻过来就可以了。

关于ios - 为什么我的 uipagecontrol 第一次没有正确更新,但是第二次通过 Xcode 更新了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38984457/

相关文章:

ios - 关于ios项目中pod安装错误

ios - NSPredicate 与 NSURL 在 iOS 中崩溃

swift - 基于 View 的 NSTableView 不显示单元格内容

objective-c - Xcode 调试器 - 为什么您只能逐步进入 Apple 框架代码?

swift - Swift 中的计算属性和存储值属性有什么区别?

ios - SignificantLocationChanges 不适用于 iOS 8

ios - 如何在 UIViewcontroller 中访问已安装的 pod 库宏字符串?

ios - 如何在 iOS 上设置 SBPickerSelector 的默认值(非日期)

ios - 奇怪的 UITableView 错误 : "Assertion Failure" on dequeuing static cells in storyboard

ios - CoreData 对象属性在创建下一个对象时消失