如何在某些特定条件下使用swift禁用uicollectionview中的滚动

问题描述 投票:2回答:2

我有一个NSCollectionView并且必须禁用它的scrollview滚动属性,以便它不会在某些特定条件下重新加载并在用户尝试滚动时向用户显示警报。

滚动视图时调用的任何委托方法都可以限制滚动和重新加载集合视图数据。

提前致谢。

swift macos cocoa nsscrollview nscollectionview
2个回答
0
投票

子类NSCollectionView并覆盖scrollWheel

import Cocoa

class YourCollectionView: NSCollectionView {
    var disableScroll = true

    override func scrollWheel(with event: NSEvent) {
        if disableScroll {
            return
        } else {
            super.scrollWheel(with: event)
        }
    }
}


-2
投票

您可以在ScrollViewDelegate的scrollViewDidScroll方法的帮助下完成。您可以使用此方法,因为collectionview是scrollview的子类。

例如 :

func scrollViewDidScroll(_ scrollView: UIScrollView) {
        print("collectionView Content : \(collectionView.contentOffset.y)")

            if collectionView.contentOffset.y >= 100
            {
                collectionView.isScrollEnabled = false
            }
            else
            {
                collectionView.isScrollEnabled = true
            }

    }

我希望它为你工作。

© www.soinside.com 2019 - 2024. All rights reserved.