我目前有一个UIView,它是完全透明的,并置于许多其他标签之上。所有标签后面都有一个背景图像,并且由于所有标签都是透明背景,因此我可以透过它们看到图片。然后,由于此放置在标签顶部的视图也设置为透明,因此我可以看到其后面的标签。有没有办法使该视图仅对背景图像透明?那样的话,当我看到它时,我只会看到背景图像而不是标签,好像标签在此视图下不存在。
P.S。我已经看过这个post的确与之相关,但是答案中的链接已消失。
谢谢!
编辑
这是我的意思:
箭头指向的透明视图不在滚动视图中,而是悬停在其上方。滚动视图中将有很多文本内容,因此当它们在指向视图下通过时,它们将是可见的。如何使该悬停视图仅反映其背后的大imageview,而不反映其背后的任何文本?也就是说,我希望当文本在此视图下通过时,它们是不可见的,并且该视图始终反映背景图像。而且,由于它是不断变化的图像,而不是纯色,因此我不能仅将悬停视图的颜色设置为与背景匹配。
答案 0 :(得分:0)
我确实没有收到您的问题,但是我将为您提供所提供的链接的解决方案。
因此,在链接中,我们有一个透明的大圆圈,我们希望在背景右侧阻止该小圆圈。
这是您能做的。
您创建两个相同的视图。
第一个视图是您的普通视图,您可以在其中显示任何内容。第二个是backgroundView,它的位置和大小与第一个视图相同。但是要注意的是,backgroundView将显示与真实背景视图相同的背景颜色。
所以视图层次结构将是这样
然后您要做的就是将backgroundView的alpha值保持为1,然后将第一个视图的alpha值更改为0.6
示例代码
private func addCircle(){
// adding a blue circle
let circleView = UIView()
circleView.backgroundColor = .blue
circleView.alpha = 0.5
view.addSubview(circleView)
circleView.bounds = CGRect(x: 0, y: 0, width: 100, height: 100)
circleView.center = view.center
circleView.layer.cornerRadius = 100 / 2
circleView.layer.masksToBounds = true
// adding a backgroundView
let backgroundView = UIView()
backgroundView.backgroundColor = .red
view.insertSubview(backgroundView, belowSubview: circleView)
backgroundView.bounds = CGRect(x: 0, y: 0, width: 100, height: 100)
backgroundView.center = view.center
backgroundView.layer.cornerRadius = 100 / 2
backgroundView.layer.masksToBounds = true
}