iOS:如何实现UIButton背景图像的高亮显示?

时间:2016-12-20 23:27:28

标签: ios objective-c image uibutton highlight

我试图获得与UIButton背景图像相同的高光,但对于没有背景图像的UIButton。这是具有图像背景的UIButton突出显示时的样子。

enter image description here

但是,使用非背景图像按钮时,我无法实现此目的。这是我到目前为止我的自定义按钮的代码。

- (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];
}

这似乎运作良好,但不确定是否有更好的选择。

0 个答案:

没有答案