好吧,我的问题是,正如您在图像中看到的那样,我有一个子视图,在那个子视图中,我有其他视图,而在里面,我有一个uilabel和一些uibutton。
我的问题是如何在viewDidLoad的每个子视图上访问所有uibutton和uilabel,以便在应用程序启动时可以更改它们的某些方面。
在测试中,我尝试更改按钮的颜色。
我尝试使用此代码,但是没有用:
for (UIView *view1 in self.view.subviews) {
NSLog(@"%@----", view1);
for(UIView *view2 in view1.subviews){
NSLog(@"%@", view2);
if ([view2 isKindOfClass:[UIButton class]]) {
[(UIButton *)view2 setBackgroundColor:[UIColor redColor]];
}
}
}
nslog给出以下信息:
感谢您的所有帮助。
您可以IBOutlets
在要引用的所有对象中创建,或使用唯一标记,并用于viewWithTag
获取对对象指针的引用。
如果使用viewWithTag
,请确保检查对象指针是否为nil,以避免运行时崩溃。
要使用viewWithTag
,您需要在IB中分配唯一的标签,请参见屏幕截图:
如您所见,我UILabel
的标签为253,要访问它的指针对象,我必须使用viewWithTag
:
UILabel *myTagLabel = (UILabel*)[self.view viewWithTag:253];
正如我在使用该指针之前所建议的,请检查以下内容nil
:
if (myTagLabel) {
//object pointer retrieved successfully
myTagLabel.text = @"Hello";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句