Ios 检测UIPageControl页面更改

Ios 检测UIPageControl页面更改,ios,swift,uipagecontrol,Ios,Swift,Uipagecontrol,我想在UICollectionViewCell内添加一个UIPageController。我创建了一个自定义nib文件,里面有一个collectionViewCell。在单元格内,我添加了一个UIPageControl @IBOutlet weak var pageControl: UIPageControl! override func awakeFromNib() { super.awakeFromNib() self.isUserInteracti

我想在
UICollectionViewCell
内添加一个
UIPageController
。我创建了一个自定义nib文件,里面有一个
collectionViewCell
。在单元格内,我添加了一个
UIPageControl

@IBOutlet weak var pageControl: UIPageControl!

    override func awakeFromNib() {
        super.awakeFromNib()

       self.isUserInteractionEnabled = true
        pageControl.isUserInteractionEnabled = true
        self.backgroundColor = UIColor.darkGray
       setupPageControl()
    }

private func setupPageControl() {

    pageControl.numberOfPages = 7
    pageControl.translatesAutoresizingMaskIntoConstraints = false
    pageControl.currentPageIndicatorTintColor = UIColor.orange
    pageControl.pageIndicatorTintColor = UIColor.lightGray.withAlphaComponent(0.8)
}
如何检测页面更改?点也在视图的中间,有可能把它们放在中间吗?

当用户点击页面控件以移动到下一页或上一页时, 控件发送valueChanged事件以供 代表。然后,委托可以将currentPage属性求值为 确定要显示的页面。页控件仅前进一页 在任何一个方向。当前查看的页面由白色图标指示 圆点。根据设备的不同,会显示一定数量的点 在剪辑之前,在屏幕上显示

你也可以使用

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
    let pageNumber = round(scrollView.contentOffset.x / scrollView.frame.size.width)
    pageControl.currentPage = Int(pageNumber)
}
斯威夫特5 1) 地址 您可以在setupPageControl功能中添加检测值更改的目标:

private func setupPageControl() {

    pageControl.numberOfPages = 7
    pageControl.translatesAutoresizingMaskIntoConstraints = false
    pageControl.currentPageIndicatorTintColor = UIColor.orange
    pageControl.pageIndicatorTintColor = UIColor.lightGray.withAlphaComponent(0.8)
    pageControl.addTarget(self, action: #selector(pageControlHandle), for: .valueChanged)
}
创建选择器以更改所需的值:

@objc private func pageControlHandle(sender: UIPageControl){
    print(sender.currentPage)

}

我稍后会尝试你的解决方案,谢谢。但有人写道,改变是通过点击控制器来实现的,实际上在我的解决方案中,不可能滑动到下一个视图。这正常吗?我是否应该使用uipageviewcontroller,然后在其上放置uiviewcontrole,而不是将uiviewcontrol直接放置在collectionviewcell上?