有没有办法更改UIButton的imageview的alpha值?我已经尝试了子类化UIButton并执行以下代码,但它不起作用。
self.imageView.alpha = 0.0;
我知道可以通过将外部UIImageView添加为UIButton的子视图来完成,但我想知道是否可以不这样做。谢谢!
有没有办法更改UIButton的imageview的alpha值?我已经尝试了子类化UIButton并执行以下代码,但它不起作用。
self.imageView.alpha = 0.0;
我知道可以通过将外部UIImageView添加为UIButton的子视图来完成,但我想知道是否可以不这样做。谢谢!
for (UIView *view in myButton.subviews) {
if ([view isKindOfClass:[UIImageView class]]) {
view.alpha = 0.5;
}
}
通过子类化(将在布局更改中幸存):
override func layoutSubviews() {
super.layoutSubviews()
if let imageView = imageView {
imageView.alpha = 0.2
}
}
没有子类(瞬时的,适用于动画):
if let imageView = imageButton.imageView {
imageView.alpha = CGFloat(sender.value)
}
Subclass Source Code
@IBDesignable class FadeButton: UIButton {
@IBInspectable var imageAlpha: CGFloat = 1 {
didSet {
if let imageView = imageView {
imageView.alpha = imageAlpha
}
}
}
override func layoutSubviews() {
super.layoutSubviews()
if let imageView = imageView {
imageView.alpha = imageAlpha
}
}
}
使用imageButton.imageAlpha = alpha
调用。
演示
► 在GitHub上查找此解决方案,以及有关Swift Recipes的其他详细信息。
UIImageView
是实现持久、可靠行为的最简单选择。我最近也需要类似的东西。我想要一个按钮,可以添加图像作为背景,然后有半透明的颜色覆盖在图像上,从而创建一个自定义颜色的图像按钮类型。
我找到的方法是:
它们都具有相同的大小,宽度,位置和以上顺序层叠。 这样您就可以控制图像将是什么(以及必要时其alpha),在图像上方有染色的覆盖层(使用所需的alpha),然后在其上部放置透明的可点击按钮。
UIButton
经常重置其大部分子视图。 - Tobi Nary