iOS UIPageViewController ScrollView 偏移量获取错误值

标签 ios swift uiscrollview uipageviewcontroller uiscrollviewdelegate

我有一个 UIPageViewController 并符合 UIScrollViewDelegate via

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

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

enter image description here

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

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

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

日志:

"X val :274.777777777778"

"offset : 827.666666666667"

"X val :274.888888888889"

"offset : 828.0"

"X val :275.0"

"offset : 414.0"

"X val :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)")
}

关于iOS UIPageViewController ScrollView 偏移量获取错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51458320/

相关文章:

ios - datepicker 格式现在在 ios swift 4.1 中完美显示月份?

ios - 如何在 swift 中创建具有特定类型别名的闭包?

ios - 如何同时使用水平和垂直 ScrollView (快速)

ios - TPKeyboardAvoidingScrollView 不起作用

ios - UIButton 触摸未注册

ios - 在 MPMoviePlayerController 上调用播放后,电影播放有一些延迟

ios - 如何为 Core Data 中的二进制数据启用外部存储

ios - Firebase 集成到 IOS 项目 - 没有这样的文件或目录

ios - 通过正则表达式验证 IP 地址 - 未知转义序列

ios - 使用 Parse 方法 getObjectInBackgroundWithId 将 objectId 从 viewDidLoad 传递到另一个函数不起作用