【发布时间】:2026-01-09 12:50:02
【问题描述】:
我有一个 textView,其内容可能超过视图的高度,所以我希望能够向下滚动,在我想要的时候停止,并在停止后返回时向上滚动。
问题:
当滚动(用两根手指)时,会发生两件事:
- 顶行滚动到上面的视图中
- 当手指从屏幕上抬起时,视图会弹回顶部。
问题:
- 如何防止 textView 框架上方的数据滚动到其上方的视图中?
- 当他们的手指离开屏幕时如何停止滚动?用户抬起手指时会调用哪些事件?
import UIKit
class ScrollableView: UIView, UITextViewDelegate {
var displayData = UITextView()
override func draw(_ rect: CGRect) {
super.draw(rect)
displayData.delegate = self
getContent()
calculateFrameBounds()
displayTallTable()
}
func getContent() {
}
func calculateFrameBounds() {
}
func displayTallTable() {
displayData.frame = CGRect(x: x, y: y, width: w, height: h)
self.addSubview(displayData)
}
}
【问题讨论】:
-
为什么不将 UITextView 添加到 scrollView 中?有关更多信息,请查看 scrollView 的委托
UIScrollViewDelegate中的回调。此外,您可以通过切换scrollView.isScrollEnabled来强制停止滚动 -
这就是我开始的地方,但因为
UITextView已经是UIScrollView的子类而将其删除。 -
您仍然可以在您的 UITextView 上设置一个委托并观察对回调的响应
-
是的,我现在已经让回调工作(见下文),但现在不知道如何在手指抬起时停止滚动。