今天我开始在 Xcode 中搞乱 Storyboard,有一个问题让我觉得很愚蠢:
我有一个带有导航控制器和表视图作为其根视图的故事板。现在我在导航栏中添加了一个条形按钮项。因为我希望这个按钮有一个自定义背景,所以我通过在“自定义类”字段中选择我的类的名称来将我的自定义 UIBarButtonItem 类分配给这个按钮。
类本身如下所示:
- (id)initWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action
{
self = [super initWithTitle:title style:style target:target action:action];
if (self) {
[self setBackgroundImage:[self buttonBg] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
}
return self;
}
- (id)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action
{
self = [super initWithImage:image style:style target:target action:action];
if (self) {
[self setBackgroundImage:[self buttonBg] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
}
return self;
}
- (UIImage *)buttonBg
{
return [[UIImage imageNamed:@"navBarButton.png" ] resizableImageWithCapInsets:UIEdgeInsetsMake(15, 6, 15, 6)
resizingMode:UIImageResizingModeTile];
}
我写了这个类,假设以编程方式添加一个按钮,这当然可以,因为我可以自己调用初始化程序。问题是我不知道Interface Builder调用了哪个初始化器,我什至尝试过覆盖基本的“init”,但似乎这个也没有调用......</p>
我做了很多搜索,但没有找到合适的东西,尽管我确信这是基本的东西。所以请道歉。:)