繁体   English   中英

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

[英]How to disbale scrolling in nscollectionview using swift on some specific condition

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

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

提前致谢。

子类NSCollectionView并覆盖scrollWheel

import Cocoa

class YourCollectionView: NSCollectionView {
    var disableScroll = true

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

您可以在ScrollViewDelegate的scrollViewDidScroll方法的帮助下进行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
            }

    }

希望它对您有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM