【发布时间】:2011-05-13 22:39:55
【问题描述】:
我使用界面生成器创建了一些 UIBarButtonItem 并尝试将按钮自定义为绿色。虽然我找不到更改按钮背景颜色的方法,但我决定以这种方式编写代码: IBOutlet UIBarButtonItem *btnDone;
-(void)viewDidLoad {
[super viewDidLoad];
UIImage *buttonImage = [[UIImage imageNamed:@"btnGreen.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:0];
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
[doneButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
[doneButton setTitle:@"Done" forState:UIControlStateNormal];
[doneButton addTarget:self action:@selector(saveDateEdit:) forControlEvents:UIControlEventTouchUpInside];
[doneButton.titleLabel setFont:[UIFont boldSystemFontOfSize:13]];
doneButton.frame = CGRectMake(0.0, 0.0, 50, 30);
btnDone = [[UIBarButtonItem alloc] initWithCustomView:doneButton];
[doneButton release];
}
我创建 IBOutlet 并从界面构建器链接到按钮,同时我尝试在首次加载期间覆盖它。但是,它显示的是默认按钮。
想知道为什么会这样吗?或者更好的人可以建议我将 UIBarButtonItem 更改为绿色的更好方法。
感谢您的帮助!
【问题讨论】:
-
为什么不改变
UIButton图像[backButton setImage:[UIImage imageNamed:@"wo.png"] forState:UIControlStateNormal]; -
如果我 setImage 它将替换我前面的标题或措辞。所以我必须设置为背景。 XD
-
最后,我通过手动编码所有 UIButton 并将其添加到工具栏视图来解决这个问题。
标签: iphone objective-c