iOS Swift:如何在UIViewController中隐藏和显示按钮

时间:2018-08-12 18:16:28

标签: ios swift xcode uicollectionview

我正在运行UICollectionView,它显示了主题列表。

在标题中,我有3个按钮'filter','clear'和'back'

这些按钮都是在storyboard中创建的,没有链接IBOutlets(请参阅下文)。 “ filter”和“ back”按钮链接到Segue / Dismiss Segue,“ clear”按钮链接为IBAction

filter”按钮调出另一个viewcontrollertableview),用户可以在其中选择各种“ filters”,当返回到collectionview时,主题为“ {filtered”。很可爱。

clear”按钮将清除已应用于视图集合的所有过滤器。按下此按钮后,将删除所有过滤器,并重新加载viewcontroller。再次可爱。

但是,除非应用了过滤器,否则我希望隐藏“ clear”按钮。目前,“ filter和“ clear”按钮均从一开始就显示。我很高兴滤镜按钮始终存在,因为我希望用户能够始终应用/调整滤镜。但是,我只希望在应用了过滤器的情况下显示“ clear”按钮。因此,我不希望在启动时或在按下“ clear button”按钮之后使用“ clear” ...直到使用下一个过滤器。

通常,我只想将IBOutlet链接到按钮,然后在各个点isHidden设置其hide/unhide属性。但是由于出现错误,我似乎无法执行此操作:

invalid repeating content' when I link a IBOutlet to the 'clear' button in the header

我尝试创建一个子类UICollectionViewCell并从那里创建IBOutlet。效果很好,我可以链接到按钮(我尝试对全部3个或仅对'clear button'进行衬里组合。但是随后分别对'filter和'back'进行了排序按钮不再触发。

我正在寻找一种隐藏/取消隐藏“清除”按钮的方法,同时保持segue / dismiss触发器仍然起作用。

我希望朝正确的方向戳一下。

注意事项:由于UICollectionView

没什么特别之处,我没有提供任何代码

1 个答案:

答案 0 :(得分:1)

您可以通过UIButton访问viewWithTag(),然后更改其.isHidden属性。记得在情节提要中设置标签。

view.viewWithTag(insertYourTagHere).isHidden = false

老实说,添加IBOutltes会更好。