修改除一个之外的所有子视图

Posted

技术标签:

【中文标题】修改除一个之外的所有子视图【英文标题】:Modifying all subviews except for one 【发布时间】:2016-11-27 16:10:23 【问题描述】:

我在单个视图下有许多子视图元素,其中包含按钮、标签等。请快速查看以下屏幕截图。

当我单击一个按钮时,我希望所有子视图都消失/隐藏,除了第一个子视图 UIImageView 包含背景图像。

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

给定一个父视图

let viewContainer : UIView = ...

您可以隐藏所有子视图,但 UIImageView 类型的视图除外

viewContainer.subviews.forEach 
    if $0 is UIImageView == false  $0.isHidden = true 

【讨论】:

我的应用程序中有一些东西可以更通用地执行此操作(这不是一件好事)。很棒的答案! 我尝试这样做,但出现错误“表达式解析为未使用的 I 值” 我把它修好了。我认为在 swift 3 中你需要添加 $0.isHidden = true

以上是关于修改除一个之外的所有子视图的主要内容,如果未能解决你的问题,请参考以下文章

我想在视图中滚动除按钮之外的所有内容

需要在 iOS 的覆盖视图中阻止除特定触摸之外的所有触摸

在可扩展列表视图android中折叠除选定组之外的所有组

删除 cell.contentview 上的所有子视图,标签除外

删除除命名的所有子视图

自定义 UINavigationBar 背景适用于除一个之外的所有导航控制器