1

我已经像这样自定义了 UIBarButtonItem:

UIButton *loginBtn = [UIButton buttonWithType:UIButtonTypeCustom];
loginBtn.frame = CGRectMake(0, 0, 46.0, 34.0);
[loginBtn setImage:[UIImage imageNamed:@"loginBtn.png"] forState:UIControlStateNormal];
[loginBtn addTarget:self action:@selector(loginPressed:) forControlEvents:UIControlEventTouchUpInside];
[loginBtn setTitle:@"Login" forState:UIControlStateNormal];

UIBarButtonItem *finishedButton = [[UIBarButtonItem alloc] initWithCustomView:loginBtn];

[finishedButton setStyle:UIBarButtonItemStylePlain];
self.navigationItem.rightBarButtonItem = finishedButton;

但是现在我看不到带有“登录”的标题,按钮上是空白的,似乎“setTitle:”不起作用。谁能告诉我为什么?谢谢!

4

1 回答 1

0

setTitle: 确实有效,只是您没有足够仔细地阅读文档。使用setBackgroundImage:而不是setImage:后者覆盖setTitle:,但前者没有(这就是你想要的)。所以而不是

[loginBtn setImage:[UIImage imageNamed:@"loginBtn.png"] forState:UIControlStateNormal];

[loginBtn setBackgroundImage:[UIImage imageNamed:@"loginBtn.png"] forState:UIControlStateNormal];
            ^
            +- background!

你应该可以走了。

于 2012-10-11T06:30:50.133 回答