来自未显示的UIButton的自定义UIBarButtonItem的标题

mom*_*e22 1 uibutton uibarbuttonitem ios

我做了一个自定义UIBarButtonItem从一个UIButton.自定义栏按钮可见,动作正常,大小正确,可以看到背景颜色; 但是无法看到手动设置的标题.也许背景是在文本上?我不确定,帮忙吗?

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;
Run Code Online (Sandbox Code Playgroud)

cod*_*ter 5

您应该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;
Run Code Online (Sandbox Code Playgroud)