【发布时间】:2014-12-16 01:51:56
【问题描述】:
好吧,我的问题是,正如您在图像中看到的那样,我有一个子视图,在该子视图中我有其他视图,并且在其中我有一个 uilabel 和一些 uibuttons。
我的问题是如何访问 viewDidLoad 中每个子视图上的所有 uibuttons 和 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 给出了这个:
感谢所有帮助。
【问题讨论】:
-
尝试在其中添加一些 NSLog 以确保 view1 和 view2 是您期望的视图。虽然如果你在 Interface Builder 中放置视图并且只需要在应用加载时设置它们的颜色,你不能使用 interface builder 设置它们的颜色吗?
-
是的,我可以使用界面生成器,但我也可能需要为它们添加边框以便模拟网格,如果我没记错的话,界面生成器没有添加边框的选项按钮。我将在问题上添加 nslog
-
就个人而言,我会创建 UIView 的子类并为您要更改的每个子视图创建属性。 IMO,这比遍历多个子视图数组更清晰、更具可读性。
标签: ios objective-c uiview uiviewcontroller uibutton