分配backgroundColor时,具有UIVibrancyEffect的UIButton标题不可见

时间:2015-09-29 13:13:24

标签: swift uibutton ios9 uivisualeffectview

我有两个按钮添加到UIVisualEffectView,效果为UIVibrancyEffect

let vibrancyEffectView = UIVisualEffectView(effect: UIVibrancyEffect(forBlurEffect: UIBlurEffect(style: .Dark)))

vibrancyEffectView.contentView.addSubview(rightActionButton)
vibrancyEffectView.contentView.addSubview(leftActionButton)

enter image description here

为它们设置标题:

rightActionButton.setTitle(rightAction.title, forState: .Normal)
leftActionButton.setTitle(leftAction?.title, forState: .Normal)

backgroundColor

leftActionButton.backgroundColor = UIColor.clearColor()
rightActionButton.backgroundColor = UIColor.whiteColor()

为什么我看不到合适的标题?如何解决这个问题?

以下是Apple的示例,正​​是我需要做的事情:

enter image description here

有可能吗?

2 个答案:

答案 0 :(得分:0)

只需使用alpha组件设置backgroundColor。

let vibrancyEffectView = UIVisualEffectView(effect: UIVibrancyEffect(forBlurEffect: UIBlurEffect(style: .Dark)))

leftActionButton.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.2)
rightActionButton.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.2)

结果如下:

enter image description here

答案 1 :(得分:-1)

标题在那里,但你看不到它,因为它与背景颜色相同。要使用UIVibrancyEffect按钮背景颜色必须设置为清除颜色,这样所有与其对应的背景像素相乘的透明像素也将导致透明。解决这个问题:

rightActionButton.backgroundColor = UIColor.clearColor()