ios – 如何在UIView中获取所有UILabel

我需要一种方法获取UIView中的所有UILabel,而无需通过UIView中的所有视图.

我还有很多其他类型的视图,UIButtons,UIImageViews,当我只需要UILabel时,它会花太长时间来浏览所有这些视图.

我试图避免这样的事情:

for (UIView *view in myView.subviews) 
{
    if([view isKindOfClass:[UILabel class]])
    {
        UILabel *lbl = (UILabel*)view;
    }
}

有可能还是我在做梦?

解决方法

创建一个NSArray ivar,您可以将所有UILabel添加到.

如果你在代码中执行它,那么在创建UILabel时就这样做了

NSMutableArray *labels = [[NSMutableArray alloc] init];

// Repeat this for al labels
UILabel *label = [[UILabel alloc] in...
[labels addobject:label];

// Then
self.labels = [labels copy];

如果您使用IB,则声明您的财产

@property (nonatomic,strong) IBOutletCollection(UILabel) NSArray *labels;

并将所有标签连接到此.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...