首页 > 解决方案 > 如何检查 UIScrollView 内容是否不需要使用滚动

问题描述

我的问题是,如果滚动视图的内容并非全部可见,我需要更改滚动视图下方的标签文本颜色。

例如:如果滚动视图的所有内容都可以在屏幕上看到(根本不使用滚动),我有一个红色的标签,如果我的滚动视图内的所有内容都不可见,则标签颜色为蓝色。如何以编程方式进行?

注意:我有一个 contentView -> scrollView(以编程方式)-> stackView(以编程方式)。(滚动视图内的堆栈视图和内容视图内的滚动视图。以及内容视图下方的标签)

谢谢。

标签: iosswiftuiscrollview

解决方案


1:获取scrollView的内容视图的高度

let totalHeight = scrollView.contentSize.height

2:在 viewDidLoad 检查:

if totalHeight > scrollView.frame.size.height { 
    // can scroll more 
} else { 
   // full content visible
}

3:一旦用户开始滚动,您可以调用:

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) {
        //reached to bottom
    } else {
        // can scroll more
    }
}

推荐阅读