滚动视图滚动时如何检查视图可滚动位置

时间:2019-05-29 10:05:09

标签: ios swift textview uiscrollview

我们已经通过使用文本视图实现了即时贴广告功能。滚动文本视图时,我们在文本视图的中间添加了一个视图。当textview滚动和添加的视图从视图中消失时。那么我们将显示另一个视图,其内容与添加的视图相同。完美的作品。但是现在我的新要求是当用户滚动文本视图并显示添加的视图时。然后,我们需要根据视图外观显示第二个添加的视图。例如添加的视图仅显示在屏幕上的50%,那么我们需要显示第二个视图。现在我的问题是如何根据滚动位置检测视图外观。隐藏或显示视图。 在此先感谢

1 个答案:

答案 0 :(得分:0)

您必须为此使用scrollViewDidScroll委托方法。 您可以尝试以下操作:

func scrollViewDidScroll(_ scrollView: UIScrollView) {

    // Table View Scroll Image
    let viewContentOffset = textview.contentOffset
    let viewContentSize = textview.contentSize
    let viewBounds = textview.bounds.size

    // Use Alpha value to manipulation
    let bottomOffset = scrollView.contentSize.height - scrollView.bounds.size.height
    let alpha = (scrollView.contentOffset.y / bottomOffset) * 2
}

使用NSAttributtedString将图像添加到TextView:

textView.text = "Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda."
let image = UIImage(named: "sampleImage.png");
let attachment = NSTextAttachment()
attachment.image = image
let attString = NSAttributedString(attachment: attachment)
textView.textStorage.insert(attString, at: textView.text.count/2)