ios - 如何做 UITextView 滚动检测和更改图像
问题描述
(我无法显示图像,我没有 10 声望)
let departmentMessage = UITextView(frame: CGRect(x: 25, y: 1500 / 2, width: UIScreen.main.bounds.size.width - 50, height: (UIScreen.main.bounds.size.height - 50)/4 ))
showBlshText()
departmentMessage.isScrollEnabled = true
departmentMessage.isPagingEnabled = true
departmentMessage.isEditable = false
departmentMessage.isSelectable = true
departmentMessage.dataDetectorTypes = UIDataDetectorTypes.link
departmentMessage.textColor = UIColor.darkGray
departmentMessage.textAlignment = .left
departmentMessage.contentMode = .topLeft
departmentMessage.backgroundColor = UIColor(displayP3Red: 100, green: 100, blue: 100, alpha: 20)
departmentMessage.font = UIFont(name: "Helvetica-Light", size: 20)
self.view.addSubview(departmentMessage)
departmentMessage.removeFromSuperview()
我希望单词的输出会发生变化,但实际输出不起作用。
解决方案
UITextView
是 的子类UIScrollView
。所以 scrollView 所做的一切, textView 也可以做。在您的情况下,您似乎想在滚动 textView 时执行一些操作。您应该查看UIScrollViewDelegate文档,该文档描述了如何监视 scrollView 以查看它何时滚动。有一些提示要知道:
- 当您以编程方式设置内容偏移量时,不会调用委托。
scrollViewDidEndDecelerating:
不被调用,当scrollViewDidEndDragging:willDecelerate:
被调用时使用 NO 作为willDecelerate
值。
因此,只需将您的 viewController 设置为委托,实现适当的方法,并相应地更改您的 UI。
此外,使用 UICollectionView 或 UITableView 可能会更好。即使每一行只是一个标签,跟踪collectionView顶部的indexPath比跟踪textView顶部的文本要容易得多。但是,如果不确切知道自己在做什么,就很难说。
推荐阅读
- apache-kafka - Kafka 消费者客户端未在 Zookeeper 上注册消费者组的偏移量
- bash - Bash 脚本打印在“命令行窗口”和“从 csv 文件读取”上运行的相同命令的不同输出
- python - 过滤模型预测数据框
- excel - Excel 文件未在 href 中下载 - HTML
- html - 在 Angular 模板中混合纯文本和点击处理程序
- c# - 有一个可能是也可能不是异步的方法。如何处理?
- python - Python BeautifulSoup - 从网页解析表格时遇到问题
- excel - ByRef 参数类型不匹配 Excel VBA
- node.js - 如何使用 WebStorm 调试 Express.js 应用程序
- r - transform() 不会转换我的数据 [R]