点击 pageControl 滚动到另一个视图(点击圆点)
Tap on pageControl to scroll to another view (tap on the dots)
我已经设置了具有 2 个视图的 PageViewControll。
我能够在视图之间移动,并且 pageControl(点)对应于正确的页面 - 但是点击点不会滚动到正确的视图。
我在这里找到了几个关于如何创建函数的答案,但未能成功实施以使其发挥作用。
页面控制器的代码如下(没有点击功能)
完整代码是:
func configurePageControl() {
pageControl = UIPageControl(frame: CGRect(x: 0,y: UIScreen.main.bounds.maxY - 50,width: UIScreen.main.bounds.width,height: 50))
self.pageControl.numberOfPages = viewControllerList.count
self.pageControl.currentPage = 0
self.pageControl.alpha = 0.5
self.pageControl.tintColor = UIColor.white
self.pageControl.pageIndicatorTintColor = UIColor.black
self.pageControl.currentPageIndicatorTintColor = UIColor.white
self.view.addSubview(pageControl)
}
@IBAction func pageControltapped(_ sender: Any) {
guard let pageControl = sender as? UIPageControl else { return }
let selectedPage = pageControl.currentPage
self.setViewControllers([viewControllerList[selectedPage]], direction: .forward, animated: true, completion: nil)
}
}
感谢您的帮助!!
您需要为 pageControl
创建 IBAction,您可以从中检测点击了哪个点。
然后,您需要使用setViewControllers(_:direction:animated:completion:)
方法以编程方式滚动页面。
func setViewControllers(_ viewControllers: [UIViewController]?,
direction: UIPageViewController.NavigationDirection,
animated: Bool,
completion: ((Bool) -> Void)? = nil)
使用以下代码:
@IBAction func pageControltapped(_ sender: Any) {
guard let pageControl = sender as? UIPageControl else { return }
let selectedPage = pageControl.currentPage
self.setViewControllers([viewControllerList[selectedPage]], direction: .forward, animated: true, completion: nil)
}
使用 IBAction 将 pageControl 的目标添加到 link:
func configurePageControl() {
//...your code as it is....
//add following line
self.pageControl.addTarget(self, action: #selector(pageControltapped(_:)), for: .touchUpInside)
}
我已经设置了具有 2 个视图的 PageViewControll。 我能够在视图之间移动,并且 pageControl(点)对应于正确的页面 - 但是点击点不会滚动到正确的视图。
我在这里找到了几个关于如何创建函数的答案,但未能成功实施以使其发挥作用。 页面控制器的代码如下(没有点击功能) 完整代码是:
func configurePageControl() {
pageControl = UIPageControl(frame: CGRect(x: 0,y: UIScreen.main.bounds.maxY - 50,width: UIScreen.main.bounds.width,height: 50))
self.pageControl.numberOfPages = viewControllerList.count
self.pageControl.currentPage = 0
self.pageControl.alpha = 0.5
self.pageControl.tintColor = UIColor.white
self.pageControl.pageIndicatorTintColor = UIColor.black
self.pageControl.currentPageIndicatorTintColor = UIColor.white
self.view.addSubview(pageControl)
}
@IBAction func pageControltapped(_ sender: Any) {
guard let pageControl = sender as? UIPageControl else { return }
let selectedPage = pageControl.currentPage
self.setViewControllers([viewControllerList[selectedPage]], direction: .forward, animated: true, completion: nil)
}
}
感谢您的帮助!!
您需要为
pageControl
创建 IBAction,您可以从中检测点击了哪个点。然后,您需要使用
setViewControllers(_:direction:animated:completion:)
方法以编程方式滚动页面。func setViewControllers(_ viewControllers: [UIViewController]?, direction: UIPageViewController.NavigationDirection, animated: Bool, completion: ((Bool) -> Void)? = nil)
使用以下代码:
@IBAction func pageControltapped(_ sender: Any) {
guard let pageControl = sender as? UIPageControl else { return }
let selectedPage = pageControl.currentPage
self.setViewControllers([viewControllerList[selectedPage]], direction: .forward, animated: true, completion: nil)
}
使用 IBAction 将 pageControl 的目标添加到 link:
func configurePageControl() {
//...your code as it is....
//add following line
self.pageControl.addTarget(self, action: #selector(pageControltapped(_:)), for: .touchUpInside)
}