self.view.subviews 不显示按钮

Posted

技术标签:

【中文标题】self.view.subviews 不显示按钮【英文标题】:self.view.subviews not showing buttons 【发布时间】:2013-06-11 06:44:33 【问题描述】:

我想遍历视图中的所有子视图,并为每个 UIButton 做一些事情。 这是我正在使用的代码(在 viewDidLoad 的末尾):

for(UIView* v in self.view.subviews)

    if([v isKindOfClass:[UIButton class]])
    
        NSLog(@"This is a button");
        //DO SOMETHING FOR EACH BUTTOn
    

但问题是“这是一个按钮”这一行永远不会到达......

为什么会这样?

【问题讨论】:

按钮是直接子视图还是包含在另一个子视图中? 如何添加SubView 刚刚想到 - 我将尝试添加 else if([v isKindOfClass:[UIView class]]) 并向下钻取。应该解决问题。我希望... 有没有办法获取所有的UIButtons,不管它们在哪里? 您是否在任何其他视图(如滚动视图)中添加按钮? 【参考方案1】:
for (UIButton *eachButton in self.view.subviews)
     
     [eachButton methodWhichYouNeedToAssign];

希望这会有所帮助:-)

【讨论】:

【参考方案2】:

self.view.subviews 将只返回该视图的子视图。

例如。 View A->View B->view C

View A 的子视图将仅列出 View BView C 将仅作为 view B 的子视图提供

所以尝试一些递归方法来深入了解所有子视图

【讨论】:

以上是关于self.view.subviews 不显示按钮的主要内容,如果未能解决你的问题,请参考以下文章

何时将子视图从情节提要添加到超级视图?

iOS:从视图中查找 uiviewcontroller 的类名

如何列出iOS中uiviewcontroller中的所有子视图?

vue无缝滚动插件左右切换按钮不显示

为啥我的按钮不显示?

如何在iOS中显示大按钮而不单击按钮(单击该按钮周围的区域)