4

ボタン付きの rightBarButtonItem があります。viewDidLoad でボタンのアルファを変更したのですが、表示されません。なんで?これを任意のアクション(タッチイベント)に設定すると、正常に機能します。この問題を解決する方法と、ViewDidLoad で機能しない理由を教えてください。

4

3 に答える 3

6

UIKit は、UIBarButtonItems のアルファ値を自動的にリセットします。それを非表示にするには、実際にはleftBarButtonItemorrightBarButtonItemに設定して完全に削除する必要がありますnil。透明度だけが必要な場合は、barButtonItem の背景として設定する画像に透明度を設定する必要があります (これにはappearanceプロキシを使用できます)。

于 2013-06-15T09:55:02.557 に答える
5

UIBarButtonItem のアルファ値を設定することができます。そのためには、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];
于 2014-09-08T14:56:14.633 に答える