我有一个默认的 iOS UIButton(在故事板中)。
我想更改它(删除边框半径,添加实心边框,更改背景等)。我应该在哪里写代码?我应该使用哪种方法?我应该导入哪些类?
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];
您可以以类似的方式浏览所有您想要的按钮属性。(
您需要将您的属性定义更改为:
@property (nonatomic, strong) IBOutlet UIButton *rssButton;
并将您的 UIButton 对象从情节提要连接到此属性,然后您将能够通过代码随意更改对象(假设您在同一个控制器中执行此操作)
如果您的故事板中已经定义了该按钮,则删除您在视图中添加该按钮的最后一行
在我的简单代码中,我有这样的东西:
@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];