如何找到子视图的数量?

Posted

技术标签:

【中文标题】如何找到子视图的数量?【英文标题】:How to find number of subviews? 【发布时间】:2014-07-14 15:44:39 【问题描述】:

我有一个 Xcode 项目,我在其中拖动了两个视图,它们都继承自类 LabelsView。但是,当我尝试运行代码以找出子视图的数量时,我得到了 4 个。任何人都可以解释为什么会发生这种情况。 代码是

NSLog(@"no. of subviews:%@",[NSString stringWithFormat:@"%d",[self.superview.subviews count]]);

【问题讨论】:

我猜是因为有 4 个子视图。 尝试打印子视图数组并检查其中的内容。 【参考方案1】:

您可能会得到一个奇怪的子视图计数,因为您正在访问 self.superview.subviews。您可能只需要 self.subviews。

如果像你说的那样,你只关心 LabelsView 类型的子视图,你可以像这样过滤掉它们:

int labelViewCount = 0;
for(LabelsView *subview in self.subviews) 

    if([subview isKindOfClass:[LabelsView class]]) 
         labelViewCount++;
    

NSLOG(@"label count: %d", labelViewCount);

【讨论】:

【参考方案2】:

如果你想快速计算所有子视图的数量,你可以直接使用

self.subviews.count

【讨论】:

以上是关于如何找到子视图的数量?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用部分视图列出无限数量的嵌套类别和子类别。(.NET CORE 5.0)

如何找到其乘积可以表示为 2 个随机整数的平方差的连续子序列/子数组的数量?

如何从 X 个按钮中删除子视图

NSLayoutConstraint 用于代码中未知数量的子视图

添加为子视图的 UILabel 数量遇到限制

如何在 Ubercart 中显示可用库存数量?