修改按钮的样式iOS

时间:2013-02-25 17:18:18

标签: ios button

我有一个默认的iOS UIButton(在故事板中)。

我想更改它(删除border-radius,添加实线边框,更改背景等)。我应该在哪里写代码?我应该使用哪种方法?我应该导入哪些课程?

3 个答案:

答案 0 :(得分:2)

通过在Interface Builder中为按钮类型选择custom,您可以完成大部分(如果不是全部)操作。如果这不能完成所有事情,您可以通过代码设置所有这些:

确保#import <QuartzCore/QuartzCore.h>文件中有.m

设置属性(基于this SO answer):

float borderWidth = ...;
UIColor *borderColor = ...; // create the color you want

[[myButton layer] setBorderWidth:borderWidth];
[[myButton layer] setBorderColor:borderColor.CGColor];

您可以以类似的方式浏览所需的所有按钮属性。 (

答案 1 :(得分:0)

在我的简单代码中,我有类似的东西:

@property (nonatomic, strong) UIButton *rssButton;

然后我在实现中定义了这个按钮:

- (UIButton *)rssButton {
    if(_rssButton == nil) {
        _rssButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        _rssButton.frame = CGRectMake(60, 200, 200, 40);
        [_rssButton setTitle:@"Get newest RSS article" forState:UIControlStateNormal];
        _rssButton.titleLabel.textColor = [UIColor colorWithRed:0.294 green:0.553 blue:0.886 alpha:1];
        _rssButton.backgroundColor = [UIColor whiteColor];

        _rssButton.layer.borderColor = [UIColor blackColor].CGColor;
        _rssButton.layer.borderWidth = 0.5f;
        _rssButton.layer.cornerRadius = 10.0f;

        [_rssButton addTarget:self action:@selector(getDataFromRSS) forControlEvents:UIControlEventTouchUpInside];
    }
    return _rssButton;
}

然后在主视图中添加:

[self.view addSubview:self.rssButton];

答案 2 :(得分:0)

您需要将属性定义更改为:

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

将您的UIButton对象从故事板连接到此属性,然后您可以通过代码更改对象(假设您在同一个控制器中执行此操作)

如果已在故事板中定义该按钮,请删除您在该视图中添加该按钮的最后一行