我有一个带有按钮的 rightBarButtonItem。我在 viewDidLoad 中更改了按钮的 alpha,但它没有出现。为什么?如果我将其设置为任何操作(触摸事件)它工作正常。如何解决这个问题以及为什么它在 ViewDidLoad 中不起作用?
问问题
5488 次
3 回答
6
UIKit 会自动重置 UIBarButtonItems 的 alpha 值。要让它消失,您实际上需要通过设置leftBarButtonItem
或rightBarButtonItem
to将其完全删除nil
。如果您只想要一些透明度,则需要将其设置为将设置为 barButtonItem 背景的图像(为此,您可以使用appearance
代理。
于 2013-06-15T09:55:02.557 回答
5
It is possible to set the alpha value for a UIBarButtonItem. To do it you need to create a UIButton and then set it as the view of the UIBarButtonItem. Here is an example:
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 回答
1
UIKit
customView
自动设置属性的 alpha UIBarButtonItem
,但您可以使用自定义类覆盖并强制执行所需的 alpha。(如果你想要一个半透明的按钮)。
// For use in UIBarButtonItem - UIKit resets the alpha of custom views automatically
final class HalfTransparentButton: UIButton {
override var alpha: CGFloat {
set { super.alpha = 0.5 }
get { return 0.5 }
}
}
于 2017-01-25T11:13:41.797 回答