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上?