如何在某些特定条件下使用swift抑制nscollectionview中的滚动

时间:2018-09-21 08:49:20

标签: swift macos cocoa nsscrollview nscollectionview

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

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

谢谢。

2 个答案:

答案 0 :(得分: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)
        }
    }
}

答案 1 :(得分:-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
            }

    }

希望它对您有用。