我遇到了 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/