gpt4 book ai didi

ios - 获取 subview 的所有 subview

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:06 26 4
gpt4 key购买 nike

好吧,我的问题是,正如您在图像中看到的那样,我有一个 subview ,在该 subview 中我有其他 View ,在其中我有一个 uilabel 和一些 uibutton。

viewcontroller layout

我的问题是如何访问 viewDidLoad 中每个 subview 上的所有 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 给出了这个: nslog image

感谢大家的帮助。

最佳答案

您可以创建 IBOutlets,或者在您希望引用的所有对象中使用唯一标签并使用 viewWithTag 获取对对象指针的引用。

如果您使用 viewWithTag,请确保检查对象指针是否为 nil,以避免运行时崩溃。

要使用viewWithTag,您需要在IB中分配一个唯一的Tag,见截图:

enter image description here

如您所见,我的 UILabel 在这里有一个 253 的标签,要访问它的指针对象,我必须使用 viewWithTag:

UILabel *myTagLabel = (UILabel*)[self.view viewWithTag:253];

正如我在使用该指针之前建议的那样,检查 nil:

if (myTagLabel) {
//object pointer retrieved successfully
myTagLabel.text = @"Hello";
}

关于ios - 获取 subview 的所有 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26476531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com