Iphone UIView应该如何获取对其子对象的引用?
我有一个具有根视图的xib,它是UIView子类。该视图应该如何获取对我在Interface Builder中声明的子视图的引用Iphone UIView应该如何获取对其子对象的引用?,iphone,cocoa-touch,ios5,uiview,children,Iphone,Cocoa Touch,Ios5,Uiview,Children,我有一个具有根视图的xib,它是UIView子类。该视图应该如何获取对我在Interface Builder中声明的子视图的引用 显然,ViewController可以与插座连接,但UIView呢?试试[view-viewWithTag:tagOfChildView]出口是UIViewController对象的属性,它(几乎总是)引用UIView对象(或UIView的子类)的实例 UIViewController有一个UIView,当UIViewController加载了initWithNibN
显然,ViewController可以与插座连接,但UIView呢?试试
[view-viewWithTag:tagOfChildView]代码>出口是UIViewController对象的属性,它(几乎总是)引用UIView对象(或UIView的子类)的实例
UIViewController有一个UIView,当UIViewController加载了initWithNibNamed:
时,它是XIB文件的内容。您可以在UIViewController中设置输出,然后通过拖动到列表中的“文件所有者”项,或通过拖动到Xcode的助理编辑器中的代码,将它们绑定到XIB中的各个子视图
如果只想使用代码,有几个选项。一种方法是根据视图的标记
属性直接访问视图。例如:
[myView viewWithTag:42];
另一种考虑的方法是UIVIEW有一个名为<代码>子视图< /C>的属性,它是一个子视图数组。您可以遍历它们,并根据需要访问视图。要区分它们,您可以根据情况做几件事。可以在视图上设置标记,只需使用这些标记即可
NSArray *subviews = myView.subviews;
for(UIView *view in subviews){
if(tag == 42){
// Do something with that view
}
}
或者,如果您正在寻找一种特定类型的视图,例如UISwitch,类似这样的东西在简单的情况下可能会起作用:
for(id view in subviews){
if([view isKindOfClass:NSClassFromString(@"UISwitch")]){
// Do something with that view, since it's a switch
}
}
如果您使用的是标记,则可以在代码中设置它们,或者使用Interface Builder 优秀而全面的回答。我在迭代和检查类,但使用标记要干净得多。谢谢