5

更改 UIButton 的背景颜色的另一个简单问题。因此,经过一番搜索后,我发现一种常见的方法是创建图像或子视图。

我在情节提要中创建了一个按钮并将其连接到插座。在我的 VC 课程中,我有以下内容

。H

@property (nonatomic, readwrite, strong) IBOutlet UIButton *uiLoginButton;

.m

- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%s and frame rect %@", __PRETTY_FUNCTION__, self.uiLoginButton); //here uiloginbutton does not have any size!

CGRect buttonRect = CGRectMake(50, 50, 100.0, 100.0);

self.uiLoginButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.uiLoginButton.frame = buttonRect;
self.uiLoginButton.backgroundColor = [UIColor redColor];
NSLog(@"%s and frame rect %@", __PRETTY_FUNCTION__, self.uiLoginButton);    
}

不,我随机设置了 CGRectMake 中的值,因为 IBOutlet 按钮的框架为 0。怎么会?

实际更改按钮颜色的正确方法是什么?

4

3 回答 3

14

如果您在 nib 中创建一个按钮,您可以通过 nib 本身更改所有属性。像这样 在此处输入图像描述

或者

如果您想以代码方式执行此操作,因为您是通过笔尖添加它的注意点

  • 不需要初始化。因为它是 IB 的属性。
  • 只需通过 IB 直接提供框架或通过-setFrame:方法在代码中提供
  • 要设置颜色,您可以使用-setBackgroundcolor:方法

所以我的.h

@property (nonatomic,strong) IBOutlet UIButton *uiLoginButton;

.m

[self.uiLoginButton setFrame:buttonRect];
[self.uiLoginButton setBackgroundColor:[UIColor redColor]];
于 2013-03-16T22:16:47.227 回答
1

您需要测试参考中的所有方法才能理解:https ://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html

如果在 storyBoard 中绘制 UIButton,在 viewDidAppear 中绘制 NSLog 框架。

如果你使用RounRect类型并且想要改变颜色,使用storyBoard,不要使用代码。

如果您使用自定义类型,请使用图像背景,而不是设置颜色:

[按钮 setBackgroundImage:(UIImage *) forState:UIControlStateNormal];

于 2013-03-16T22:10:05.253 回答
0

你正在覆盖的价值self.uiLoginButton

删除这些行

CGRect buttonRect = CGRectMake(50, 50, 100.0, 100.0);

self.uiLoginButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.uiLoginButton.frame = buttonRect;
于 2013-03-16T21:59:00.523 回答