我目前有一个UIView,它是完全透明的,并放在许多其他标签之上。所有标签后面都有一个背景图像,因为所有标签都是透明背景的,所以我可以透过它们看到图片。然后,由于放置在标签顶部的视图也设置为透明,因此我可以看到它后面的标签。有没有办法让这个视图只对背景图像透明?当我透过它看的时候,我只看到背景图像而不是标签,就好像标签在这个视图下不存在一样。
附注:我看过这个post,它肯定是相关的,但答案中的链接是死的。
提前感谢!
编辑
这就是我的意思:
箭头所指向的透明视图不在滚动视图中,而是悬停在滚动视图的上方。滚动视图中将有许多文本内容,因此当它们经过指向的视图下时,它们将是可见的。我如何让这个悬停视图只反映它背后的大图像视图,而不是它背后的任何文本?也就是说,我希望当文本在此视图下通过时,它们是不可见的,并且视图始终反映背景图像。而且,由于它是一个不断变化的图像,而不是纯色,我不能仅仅设置这个悬停视图的颜色来匹配背景。
发布于 2018-10-15 14:35:58
我真的不明白你的问题,但我会给你一个解决方案,就是你提供的链接。
因此,在链接中,我们有一个大的透明圆圈,我们希望阻挡背景右侧的小圆圈。
你能做的就是这样。
您将创建两个相同的视图。
第一个视图是您的普通视图,您可以在其上显示您想要的任何内容。第二个视图是一个backgroundView,它的位置和大小与第一个视图相同。但问题是,backgroundView将显示与真实背景视图相同的背景颜色。
因此视图层次结构将如下所示
真实显示视图(圆形shape)
然后,您所要做的就是保持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
}
https://stackoverflow.com/questions/52810307
复制相似问题