我扩展了 UIButton 类,以便能够设置 UINavigationBarButton 的字体和颜色(来自此代码示例:打开代码)
我是这样的:
@interface NavBarButtonGrey : UIButton
-(id)init;
@end
@implementation NavBarButtonGrey
-(id)init {
if(self = [super init]) {
self.frame = CGRectMake(0, 0, 49.0, 30.0);
self.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
UIImage *image = [UIImage imageNamed:@"greyNavButton.png"];
UIImage *stretchImage =
[image stretchableImageWithLeftCapWidth:15.0 topCapHeight:0.0];
[self setBackgroundImage:stretchImage forState:UIControlStateNormal];
self.backgroundColor = [UIColor clearColor];
[self setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal];
self.titleShadowOffset = CGSizeMake(0, -1);
self.titleLabel.font = [UIFont boldSystemFontOfSize:13];
}
return self;
}
@end
这没关系,但当然不是很灵活。我如何使用 typedef 枚举(像 Apple 一样)为我希望我的自定义按钮符合的所有不同颜色、字体和大小合并。
我唯一能从 UIKit 的接口文件中得到的是它是这样完成的:
typedef enum {
RGCustomNavBarButtonStyleBlue,
RGCustomNavBarButtonStyleGrey,
RGCustomNavBarButtonStyleBlack,
RGCustomNavBarButtonStyleGreen,
RGCustomNavBarButtonStyleRed,
} RGCustomNavBarButtonStyle;
如何通过构造函数(initWithStyle)从枚举值中获取字体、大小、颜色等的工作实现?
Objective C 中是否有一个重载构造函数?多个构造函数?
希望这是有道理的,并感谢您提供的任何帮助:)