我已经像这样定制了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:”没有用。 谁能告诉我为什么? THX!
答案 0 :(得分:0)
setTitle:
确实有效,您还没有仔细阅读文档。使用setBackgroundImage:
代替setImage:
,因为后者会覆盖setTitle:
,但前者不会(这就是您想要的)。而不是
[loginBtn setImage:[UIImage imageNamed:@"loginBtn.png"] forState:UIControlStateNormal];
写
[loginBtn setBackgroundImage:[UIImage imageNamed:@"loginBtn.png"] forState:UIControlStateNormal];
^
+- background!
你应该没事。