0

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

我想更改它(删除边框半径,添加实心边框,更改背景等)。我应该在哪里写代码?我应该使用哪种方法?我应该导入哪些类?

4

3 回答 3

2

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

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

设置属性(此 SO 答案中的基础):

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

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

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

于 2013-02-25T17:25:29.563 回答
0

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

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

并将您的 UIButton 对象从情节提要连接到此属性,然后您将能够通过代码随意更改对象(假设您在同一个控制器中执行此操作)

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

于 2013-02-25T17:29:11.103 回答
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];
于 2013-02-25T17:25:17.380 回答