2014-07-10 60 views
1

我从UIButton自定义了UIBarButtonItem。自定义栏按钮是可见的,动作有效,大小正确,并且可以看到背景色;然而手动设置的标题不能被看到。也许背景是放置在文字上?我不确定,帮忙?来自UIButton的自定义UIBarButtonItem的标题不显示

viewDidLoad

UIButton *resetButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
resetButton.frame = CGRectMake(0, 0, 65, 30); 
[resetButton addTarget:self action:@selector(speakPhrase:) forControlEvents:UIControlEventTouchUpInside]; 
resetButton.titleLabel.font = [UIFont fontWithName:@"ProximaNova-Bold" size:19]; 
resetButton.titleLabel.text = @"RESET"; 
resetButton.titleLabel.textColor = [UIColor whiteColor]; 
resetButton.backgroundColor = [UIColor redColor]; 
resetButton.showsTouchWhenHighlighted = YES; 

UIBarButtonItem *resetBarBTN = [[UIBarButtonItem alloc] initWithCustomView:resetButton]; 

self.navigationItem.rightBarButtonItem = resetBarBTN; 

回答

4

你应该设置标题使用setTitle:forState:特定控制状态的按钮,下面

UIButton *resetButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
resetButton.frame = CGRectMake(0, 0, 65, 30); 
[resetButton addTarget:self action:@selector(speakPhrase:) forControlEvents:UIControlEventTouchUpInside]; 
resetButton.titleLabel.font = [UIFont fontWithName:@"ProximaNova-Bold" size:19]; 

[resetButton setTitle:@"RESET" forState:UIControlStateNormal]; //change this line in your code 

resetButton.titleLabel.textColor = [UIColor whiteColor]; 
resetButton.backgroundColor = [UIColor redColor]; 
resetButton.showsTouchWhenHighlighted = YES; 

UIBarButtonItem *resetBarBTN = [[UIBarButtonItem alloc] initWithCustomView:resetButton]; 

self.navigationItem.rightBarButtonItem = resetBarBTN; 
+0

它的工作取代你的代码,谢谢! – momodude22

0

使用的setTitle:forState设置按钮标题。例如

[resetButton setTitle:@"text" forState:UIControlStateNormal]