UITextView如何滚动检测和更改图像

时间:2019-05-14 05:03:01

标签: ios swift uitextview

它看起来像这样: enter image description here

enter image description here

(我无法显示图片,我没有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()

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

1 个答案:

答案 0 :(得分:0)

UITextViewUIScrollView的子类。因此,scrollView做textView的所有事情也可以做。在这种情况下,似乎要在滚动textView时执行一些操作。您应该查看UIScrollViewDelegate文档,该文档描述了如何监视scrollView以查看何时滚动。有一些技巧要知道:

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

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

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