正如其他人在这里指出的那样,您不能子类化 UIRoundedRectButton。但是你可以通过在你的 init 方法中设置一些 CALayer 属性来让你的按钮看起来像圆角矩形按钮。
#import "MyCustomButton.h"
#import <QuartzCore/QuartzCore.h>
@implementation MyCustomButton
- (id)initWithFrame:(CGRect)frame
//button created in code
{
self = [super initWithFrame:frame];
if (self) {
[self initialise];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder;
//button created in Interface Builder
{
self = [super initWithCoder:aDecoder];
if (self) {
[self initialise];
}
return self;
}
- (void)initialise;
{
self.layer.cornerRadius = 10.0f;
self.layer.borderWidth = 1.0f;
self.layer.borderColor = [[UIColor lightGrayColor] CGColor];
}
@end
如果您禁用了自动布局,您可以继续在 IB 中使用“圆角矩形”按钮样式,以在布局中为您提供正确的外观,尽管当您的自定义按钮加载时该样式将被忽略。如果启用了自动布局,您必须将 IB 样式更改为“自定义”,否则您会发现按钮框架的行为方式与您期望的不同。