首页 > 解决方案 > 如何做 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()

我希望单词的输出会发生变化,但实际输出不起作用。

标签: iosswiftuitextview

解决方案


UITextView是 的子类UIScrollView。所以 scrollView 所做的一切, textView 也可以做。在您的情况下,您似乎想在滚动 textView 时执行一些操作。您应该查看UIScrollViewDelegate文档,该文档描述了如何监视 scrollView 以查看它何时滚动。有一些提示要知道:

  • 当您以编程方式设置内容偏移量时,不会调用委托。
  • scrollViewDidEndDecelerating:不被调用,当scrollViewDidEndDragging:willDecelerate:被调用时使用 NO 作为willDecelerate值。

因此,只需将您的 viewController 设置为委托,实现适当的方法,并相应地更改您的 UI。

此外,使用 UICollectionView 或 UITableView 可能会更好。即使每一行只是一个标签,跟踪collectionView顶部的indexPath比跟踪textView顶部的文本要容易得多。但是,如果不确切知道自己在做什么,就很难说。


推荐阅读