我有一个UIPageViewController并通过遵守UIScrollViewDelegate

for subView in self.pageVC.view.subviews {
    if let subView = subView as? UIScrollView {
        subView.delegate = self
    }
}


我有一个指示器(蓝色的下部),我想将其滑动到pageviewcontroller,如图所示。

ios - iOS UIPageViewController ScrollView偏移量获取错误值-LMLPHP

但是当我打印偏移值时,得到奇怪的结果,当我停止滚动时。

偏移值随我滚动而增加,而当我停止时,它始终为414.0。

func scrollViewDidScroll(_ scrollView: UIScrollView) {

    debugPrint("offset : \(scrollView.contentOffset.x)")
    let x = (1/3) * (scrollView.contentOffset.x) - 1
    debugPrint("X val :\(x)")
}


日志:


  “ X值:274.777777777778”
  
  “偏移量:827.666666666667”
  
  “ X值:274.888888888889”
  
  “偏移量:828.0”
  
  “ X值:275.0”
  
  “偏移量:414.0”
  
  “ X值:137.0”


我在做什么错?

最佳答案

试试这个代码

func scrollViewDidScroll(_ scrollView: UIScrollView) {
 let point = scrollView.contentOffset
 let percentComplete = fabs(point.x - self.view.frame.size.width)/self.view.frame.size.width
 print("percentComplete: \(percentComplete)")
}

10-08 03:18