另一个UIButton背景颜色问题

时间:2013-03-16 21:49:22

标签: ios uibutton

更改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.为什么?

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

3 个答案:

答案 0 :(得分:14)

如果要在笔尖中创建按钮,则可以通过笔尖本身更改所有属性。 像这样 enter image description here

OR

如果您想以编码方式进行,因为您要通过笔尖点添加它来注意

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

所以我的.h

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

的.m

[self.uiLoginButton setFrame:buttonRect];
[self.uiLoginButton setBackgroundColor:[UIColor redColor]];

答案 1 :(得分:1)

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

如果你在storyBoard中绘制UIButton,则在viewDidAppear中绘制NSLog帧。

如果您使用RounRect类型并想要更改颜色,请使用storyBoard,不要使用代码。

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

[button setBackgroundImage:(UIImage *)forState:UIControlStateNormal];

答案 2 :(得分:0)

您要覆盖self.uiLoginButton

的值

删除这些行

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

self.uiLoginButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.uiLoginButton.frame = buttonRect;