我试图获得与UIButton背景图像相同的高光,但对于没有背景图像的UIButton。这是具有图像背景的UIButton突出显示时的样子。
但是,使用非背景图像按钮时,我无法实现此目的。这是我到目前为止我的自定义按钮的代码。
- (void)setHighlighted:(BOOL)highlighted
{
if (highlighted) {
self.backgroundColor = [self.backgroundColor colorWithAlphaComponent:0.9f];
self.titleLabel.alpha = 0.9f;
} else {
self.backgroundColor = [self.backgroundColor colorWithAlphaComponent:1.0f];
self.titleLabel.alpha = 1.0f;
}
[super setHighlighted:highlighted];
}
主要问题是它不够黑。有没有办法可以更改背景颜色和标签颜色,使其类似于具有突出显示图像背景的UIButton?
编辑:我知道alpha会让它变得更轻,但在我研究时,这是在一个帖子中推荐的。
编辑:我创建了这个方法
- (void)setHighlighted:(BOOL)highlighted
{
if (highlighted) {
if (!overlayView) {
overlayView = [[UIView alloc] initWithFrame:self.bounds];
overlayView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5];
}
[self addSubview:overlayView];
} else {
[overlayView removeFromSuperview];
}
[super setHighlighted:highlighted];
}
这似乎运作良好,但不确定是否有更好的选择。