Swift 更改集合视图';s isHidden属性没有';无法使用搜索栏取消按钮

Swift 更改集合视图';s isHidden属性没有';无法使用搜索栏取消按钮,swift,uicollectionview,uisearchcontroller,Swift,Uicollectionview,Uisearchcontroller,我有一个集合视图,它隐藏在ViewDidLoad上。当用户点击搜索栏时,将显示集合视图。但是,当我单击搜索栏中的“取消”按钮时,集合视图并没有隐藏。我在其他帖子上读到了使用.alpha=0隐藏视图的内容,这很有效。我的问题是: 为什么艾希登不工作,阿尔法是 如果我使用.alpha=0,集合视图仍然是活动层吗 代码如下: func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { collectionView.isHidd

我有一个集合视图,它隐藏在ViewDidLoad上。当用户点击搜索栏时,将显示集合视图。但是,当我单击搜索栏中的“取消”按钮时,集合视图并没有隐藏。我在其他帖子上读到了使用.alpha=0隐藏视图的内容,这很有效。我的问题是:

  • 为什么艾希登不工作,阿尔法是
  • 如果我使用.alpha=0,集合视图仍然是活动层吗
代码如下:

func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
    collectionView.isHidden = true // This doesn't work
    //collectionView.alpha = 0 // This works
}

func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
    collectionView.isHidden = false // This doesn't work
    //collectionView.alpha = 1  // This works
    return true
}
通过将alpha通道更改为1和0显示应用程序工作的动画GIF


感谢阅读我的问题。

此隐藏属性在
UIView
s上最有效(同时用于许多其他用途)。如果要使用隐藏属性,最好将您的
collectionView
嵌入到视图中

此属性的默认值为false。作为一种优化 当值为 这个属性的值是真的。因为可能没有隐藏的视图 元素不参与集合视图的命中测试


来源:

此隐藏属性在
UIView
s上最有效(同时用于许多其他用途)。如果要使用隐藏属性,最好将您的
collectionView
嵌入到视图中

此属性的默认值为false。作为一种优化 当值为 这个属性的值是真的。因为可能没有隐藏的视图 元素不参与集合视图的命中测试

资料来源: