【发布时间】:2019-07-13 04:54:32
【问题描述】:
我可以将 UIImage 的 mask 属性设置为另一个 UIView,但是如果我将 UIImage 的 mask 属性设置为 UISwitch,则 UIImage 和 UISwitch 不会显示。
recordMicSwitch = UISwitch()
guard let sc = recordMicSwitch else { return }
sc.frame = CGRect(x: deviceWidth - sc.frame.size.width - rightMargin, y: yPos, width: 0, height: 0)
sc.onTintColor = UIColor(red: 0, green: 0.717, blue: 1.0, alpha: 1.0)
view.addSubview(sc)
let image: UIImage = UIImage(named: "testBGGradient.png")!
let bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x:200, y:120, width:bgImage.frame.width/2, height:bgImage.frame.height/2)
bgImage.mask = recordMicSwitch!
self.view.addSubview(bgImage)
【问题讨论】:
-
请注意 - 如果我输入的每个字符都没有在我的计算机上显示旋转球,我就无法更新帖子。
-
sc.frame = CGRect(x: deviceWidth - sc.frame.size.width - rightMargin -
为什么将掩码设置为
recordMicSwitch!,而不是sc? -
@ChewieTheChorkie - 你当然可以使用
UISwitch之类的控件作为另一个视图的掩码,但是你做错了几件事(其中一个,你不能以这种方式更改交换机的框架)。然而,问题是,你真正想要做什么?您是否希望您的图像被开关的视觉外观所掩盖?或者您是否尝试使用图像将渐变应用到开关本身? -
@ChewieTheChorkie - 好的,到目前为止,您尝试使用
UISwitch的“可见”部分作为图像视图的掩码......但您想要另一种方式-大约。我怀疑您是否可以在不使用自定义开关的情况下完成此操作。快速搜索custom uiswitch...有很多选择。如果你找不到一款能满足你的需求,至少你会有一个好的起点。
标签: ios swift mask uiswitch uicontrol