更改UIButton背景颜色的另一个简单问题。所以我在搜索之后想到一个常见的方法是创建图像或子视图。
我在故事板中创建了一个按钮并将其连接到插座。在我的VC课程中,我有以下内容
@property (nonatomic, readwrite, strong) IBOutlet UIButton *uiLoginButton;
- (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.为什么?
实际更改按钮颜色的正确方法是什么?
答案 0 :(得分:14)
如果要在笔尖中创建按钮,则可以通过笔尖本身更改所有属性。 像这样
OR
如果您想以编码方式进行,因为您要通过笔尖点添加它来注意
-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;