如何知道CollectionView中Header的特定部分是否滚动到屏幕边界之外?

时间:2018-11-08 02:22:38

标签: ios swift xcode swift3 uicollectionview

我想在段控件超出屏幕范围时立即获得回调或通知。我的收藏视图顶部有一个“自定义”标题视图。

过去,当我的Header视图中只有1个UIElement时,我使用了方法

func collectionView(UICollectionView, willDisplaySupplementaryView: UICollectionReusableView, forElementKind: String, at: IndexPath)

func collectionView(UICollectionView, didEndDisplayingSupplementaryView: UICollectionReusableView, forElementOfKind: String, at: IndexPath)

实现此回调,以便在发生这种情况时可以调用我的特定函数。

但是我现在有了一些更复杂的标头,还有更多的UIElements。当细分控件超出屏幕截图的屏幕范围时,有什么方法可以获取通知或回调吗?{enter image description here

1 个答案:

答案 0 :(得分:1)

您是否通过实施scrollViewDidScroll方法,如下所示?

var isSegmentedHidden = false
func scrollViewDidScroll(_ scrollView: UIScrollView) {

    if scrollView.contentOffset.y < 50.0 && isSegmentedHidden{ //Here 50.0 is the height of your segmented control plus vertical padding if any.

        isSegmentedHidden = false

        //Call your function here, once segmented control is visible
    }

    if scrollView.contentOffset.y >= 50.0 && isSegmentedHidden == false{ //Here 50.0 is the height of your segmented control plus vertical padding if any.

        isSegmentedHidden = true

        //Call your function here, once segmented control is invisible
    }

}