我需要一种方法来获取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;
并将所有标签连接到此.