使用 swift (IOS 应用程序) 自动滚动 UITextView

Posted

技术标签:

【中文标题】使用 swift (IOS 应用程序) 自动滚动 UITextView【英文标题】:auto scroll for UITextView using swift (IOS app) 【发布时间】:2016-01-26 03:43:00 【问题描述】:

我似乎找不到使用 Swift 自动滚动 UITextView 的正确解决方案。

对于我的应用,我从 BT 接收恒定数据,并在 UITextView 上更新它。但是,当UITextView 到达最新的更新行时,我将不得不手动滚动。

我想要实现的是保持UITextView 的最后添加行可见。 (使用快速)

【问题讨论】:

我现在不在我的电脑前,所以我能做的就是你可以尝试使用计时器并增加contentOffset。这将使其自动滚动。当你到达终点时,你可以使计时器失效以停止滚动。 【参考方案1】:

这将滚动到UITextView 的底部,并带有动画:

let range = NSMakeRange(textView.text.characters.count - 1, 0)
textView.scrollRangeToVisible(range)

【讨论】:

【参考方案2】:

@SwiftArchitect 答案的 Swift 5 更新:

let range = NSRange(location: textView.text.count - 1, length: 0)
textView.scrollRangeToVisible(range)

【讨论】:

【参考方案3】:

你也可以设置 contentOffset:

let point = CGPoint(x: 0.0, y: (textView.contentSize.height - textView.bounds.height))
textView.setContentOffset(point, animated: true)

它会滚动到底部。

【讨论】:

以上是关于使用 swift (IOS 应用程序) 自动滚动 UITextView的主要内容,如果未能解决你的问题,请参考以下文章

ios水平滚动视图和自动布局问题

使用 UITableViewAutomaticDimension 行高自动滚动到表格底部? - 斯威夫特,iOS 8+

在 Swift 中使用 ScrollView 进行自动布局

Swift/iOS8:为啥不显示页面控制指示器?

我的带有自动布局约束的 Swift 4 UIScrollView 没有滚动

swift iOS - 快速滚动后 UICollectionView 图像混淆