更改集合视图的 isHidden 属性不适用于搜索栏取消按钮
Posted
技术标签:
【中文标题】更改集合视图的 isHidden 属性不适用于搜索栏取消按钮【英文标题】:Changing collection view's isHidden property doesn't work with Search Bar cancel button 【发布时间】:2017-03-20 15:50:54 【问题描述】:我有一个隐藏在 ViewDidLoad 上的集合视图。当用户点击搜索栏时,将显示集合视图。但是当我点击搜索栏中的取消按钮时,集合视图并没有隐藏。我在其他帖子上阅读了使用 .alpha = 0 隐藏视图并且有效。我的问题是:
为什么 isHidden 不起作用而 .alpha 起作用? 如果我使用 .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 动画
感谢您阅读我的问题。
【问题讨论】:
【参考方案1】:这个隐藏属性在UIView
s 上效果最好(同时用于许多其他事情)。如果您想使用 hidden 属性,最好将 collectionView
嵌入到视图中。
此属性的默认值为 false。作为优化, 值时集合视图可能不会创建相应的视图 这个属性是真的。因为可能没有视图,隐藏 元素不参与集合视图的命中测试。
来源:https://developer.apple.com/documentation/appkit/nscollectionviewlayoutattributes/1535336-ishidden
【讨论】:
以上是关于更改集合视图的 isHidden 属性不适用于搜索栏取消按钮的主要内容,如果未能解决你的问题,请参考以下文章
即使在使用view.setNeedsDisplay()刷新视图后,.isHidden属性也不会反映视图的更改
即使在使用 view.setNeedsDisplay() 刷新视图后,.isHidden 属性也不反映对视图的更改