UIScrollView 滚动条的宽度和高度?
UIScrollView scrollbar width and height?
有没有办法在 UIScrollView 中引用滚动条的宽度和高度?我看到了内容大小和内容偏移量,但似乎都没有帮助。
TL;DR
为了跟踪我添加到 UIScrollView
的视图的最低 Y 位置,我使用:
lowestView = scrollView.subviews.sorted(by: { [=10=].frame.maxY < .frame.maxY }).last?.frame.maxY ?? 0
但这并没有考虑到 UIScrollView
已经包含两个滚动条子视图的事实——这当然会打乱上面的计算。
我真正想做的是从子视图中过滤滚动条。这看起来像:
let goodViews = scrollView.subviews.filter( {[=11=].frame.height > 7 && [=11=].frame.width > 7} )
除非我知道对这些值进行硬编码总有一天会给我带来麻烦,这就是为什么我想要参考的原因。谢谢!
这是一个选项:
let bv = scrollView.showsVerticalScrollIndicator
let bh = scrollView.showsHorizontalScrollIndicator
scrollView.showsVerticalScrollIndicator = false
scrollView.showsHorizontalScrollIndicator = false
let lowestView = scrollView.subviews.sorted(by: { [=10=].frame.maxY < .frame.maxY }).last?.frame.maxY ?? 0
scrollView.showsVerticalScrollIndicator = bv
scrollView.showsHorizontalScrollIndicator = bh
我只是做了一个快速测试,但看起来很可靠。
有没有办法在 UIScrollView 中引用滚动条的宽度和高度?我看到了内容大小和内容偏移量,但似乎都没有帮助。
TL;DR
为了跟踪我添加到 UIScrollView
的视图的最低 Y 位置,我使用:
lowestView = scrollView.subviews.sorted(by: { [=10=].frame.maxY < .frame.maxY }).last?.frame.maxY ?? 0
但这并没有考虑到 UIScrollView
已经包含两个滚动条子视图的事实——这当然会打乱上面的计算。
我真正想做的是从子视图中过滤滚动条。这看起来像:
let goodViews = scrollView.subviews.filter( {[=11=].frame.height > 7 && [=11=].frame.width > 7} )
除非我知道对这些值进行硬编码总有一天会给我带来麻烦,这就是为什么我想要参考的原因。谢谢!
这是一个选项:
let bv = scrollView.showsVerticalScrollIndicator
let bh = scrollView.showsHorizontalScrollIndicator
scrollView.showsVerticalScrollIndicator = false
scrollView.showsHorizontalScrollIndicator = false
let lowestView = scrollView.subviews.sorted(by: { [=10=].frame.maxY < .frame.maxY }).last?.frame.maxY ?? 0
scrollView.showsVerticalScrollIndicator = bv
scrollView.showsHorizontalScrollIndicator = bh
我只是做了一个快速测试,但看起来很可靠。