作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为我的自定义 UIView
创建了一个 xib 文件并将我的 xib 加载到我的自定义 UIView
中和;
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"ProductDetailView" owner:self options:nil];
self = [views objectAtIndex:0];
for (id subview in self.subviews) {
if ([subview isKindOfClass:[UIView class]]) {
UIView *theView = (UIView*)subview;
if (theView.tag == 16) {
// tag 16 is specific to some UIViews... do stuff
}
}
else if ([subview isKindOfClass:[UILabel class]]) {
UILabel *theLabel = (UILabel*)subview;
if (theLabel.tag == 21) {
// tag 17 is specific to some UILabels... do stuff
}
else
{
// no tag... do stuff
}
}
}
UILabel
s 继承自
UIView
s,我不能使用这种方法。我知道更改 if 订单可以使其正常工作,但依赖 if 子句的订单感觉不太好
viewWithTag:
函数而不是循环
id
砂模类型转换?
最佳答案
您可以使用 IBOutletCollection
.您创建了一个 UILabels
的数组和 UIViews
的数组
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *labels;
@property (strong, nonatomic) IBOutletCollection(UIView) NSArray *views;
@property
在上面和在 IB 中,将您想要分组的所有标签连接到此集合,就像您连接 IBOutlet 一样。当您想遍历它们时:
for (UILabel *label in self.labels) {
NSLog(@"labelTag:%i", label.tag);
// Do what you want with this label
}
for (UIView *view in self.views) {
NSLog(@"viewTag:%i", view.tag);
// Do what you want with this view
}
关于iphone - 遍历 subview - 如何访问所有 UI 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773154/
我是一名优秀的程序员,十分优秀!