从方法内访问以编程方式创建的 UIButton 的属性

发布于 2024-08-23 02:49:50 字数 156 浏览 4 评论 0原文

我在 viewDidLoad 方法中创建了几个 UI 元素。我想从我的方法之一中更改特定 UIButton 的颜色。我该怎么做?我尝试过类似的方法: self.view.myUIButton.backgroundColor = myUIColor 这不起作用。我缺少什么?

I have created several UI elements in the viewDidLoad method. I want to change the color of a particular UIButton from within one of my methods. How can I do this? I've tried something similar to: self.view.myUIButton.backgroundColor = myUIColor That doesn't work. What am I missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

桃扇骨 2024-08-30 02:49:50

您将按钮设置为视图控制器的属性毫无用处,当 -viewDidLoad 方法完成时,它会丢失对它们的本地范围引用。

您可以为按钮设置标签属性,然后将标签保存在属性中。然后您可以遍历 viewController.view.subviews 来查找具有正确标签的子视图。

后者非常麻烦,仅当您的界面元素高度可变时才应使用。

在大多数情况下,您想要类似的东西:

UIButton *button1;
UIButton *button2;
@property(nonatomic, retain)  UIButton *button1;
@property(nonatomic, retain)  UIButton *button2;

然后在 viewDidLoad 中您将使用:

self.button1=[[UIButton alloc] initWithFrame:aRect];

然后在任何其他方法中,您可以使用 self.button1.someAttribute 访问特定按钮

Useless you set the buttons as properties of the view controller, it loses the locally scoped references to them when the -viewDidLoad method completes.

You can set the tag attribute for the buttons and then save the tags in a property. Then you can walk the viewController.view.subviews to find the subview with the right tag.

That latter is very cumbersome and shold be used only if your interface elements are highly variable.

In most cases you want something like:

UIButton *button1;
UIButton *button2;
@property(nonatomic, retain)  UIButton *button1;
@property(nonatomic, retain)  UIButton *button2;

then in viewDidLoad you would use:

self.button1=[[UIButton alloc] initWithFrame:aRect];

then in any other method you could access the specific button with self.button1.someAttribute

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文