如果视图超出屏幕上可见的当前高度,则拖动视图并滚动
Posted
技术标签:
【中文标题】如果视图超出屏幕上可见的当前高度,则拖动视图并滚动【英文标题】:Drag a view and scroll if view exceeded the current height visible on screen 【发布时间】:2012-10-10 06:02:09 【问题描述】:假设我有一个 scrollView 和里面的一些视图。我将其中一个视图垂直向下拖动,并且我希望 scrollView 自动向上滚动以使视图在拖动的同时可见。
我想到了一个算法,即获取 scrollView 的 y 位置,该位置在不滚动的情况下可见,并检查被拖动的视图是否超过此 y 位置,如果超过,则执行向上滚动 scrollView 的方法。
但是,我不知道如何获取可见的 scrollView 的 y 位置。拖动没有问题。我面临的唯一问题是向上滚动滚动视图。
请就可以做什么提出建议。谢谢。
【问题讨论】:
尝试使用 (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated 但效果不佳 【参考方案1】:嘿,对于那些需要帮助的人,我使用当前的滚动视图内容偏移量 + self.view.size.height 来获取滚动视图的可见 y 位置。根据滚动视图的这个 y 位置检查 UIView 的当前拖动 y 位置。如果超过,scrollview 内容偏移 += UIView.height
【讨论】:
以上是关于如果视图超出屏幕上可见的当前高度,则拖动视图并滚动的主要内容,如果未能解决你的问题,请参考以下文章
内容超出了 ViewController 视图,如何通过滚动在屏幕上显示冗长的内容?
ListView 使 textview 在超出屏幕可见性时可见
SwiftUI ScrollView:查找当前在屏幕中心可见的子视图。子视图在 ScrollView 中的位置。偏好键。滚动视图代理