UIBarButtonItem的setAlpha在viewDidLoad中不起作用?

Sha*_*lla 4 objective-c uinavigationbar ios

我有一个带按钮的rightBarButtonItem.我在viewDidLoad中更改了按钮的alpha值,但它没有出现.为什么?如果我把它设置为任何动作(触摸事件)它的工作正常.如何解决这个问题以及为什么它不能在ViewDidLoad中工作?

Gia*_*one 6

UIKit会自动重置UIBarButtonItems的alpha值.有它消失你实际上需要通过设置完全删除leftBarButtonItemrightBarButtonItemnil.如果您只想要一些透明度,则需要将其设置为您将设置为barButtonItem背景的图像(为此您可以使用appearance代理.


use*_*402 5

可以为UIBarButtonItem设置alpha值.为此,您需要创建一个UIButton,然后将其设置为UIBarButtonItem的视图.这是一个例子:

UIButton *pauseButton = [UIButton buttonWithType:UIButtonTypeCustom];
[pauseButton setTitle:NSLocalizedString(@"pause", nil) forState:UIControlStateNormal];
[pauseButton sizeToFit];
[pauseButton addTarget:self action:@selector(pauseButtonClick) forControlEvents:UIControlEventTouchUpInside];
pauseButton.titleLabel.alpha = 0; /* set this alpha to whatever you like */
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:pauseButton];
Run Code Online (Sandbox Code Playgroud)