swift – 将具有透明度的UIView(来自xib)添加到SceneKit

swift – 将具有透明度的UIView(来自xib)添加到SceneKit,第1张

概述我正试图将一个UIView加载到具有半透明背景的SceneKit中,但是当我减少不透明度时它只会淡化为白色. 我在.xib文件中有一个非常简单的UIView布局,我想加载到SceneKit中. 到目前为止,我可以在SCNMaterial中显示UIView,在视图中更改任何文本字段,图像等没有问题.但是我不能让它具有透明度.如果我更改视图的alpha,它就会变为白色. 大部分代码如下: if let 我正试图将一个UIVIEw加载到具有半透明背景的SceneKit中,但是当我减少不透明度时它只会淡化为白色.
我在.xib文件中有一个非常简单的UIVIEw布局,我想加载到SceneKit中.
到目前为止,我可以在SCNMaterial中显示UIVIEw,在视图中更改任何文本字段,图像等没有问题.但是我不能让它具有透明度.如果我更改视图的Alpha,它就会变为白色.

大部分代码如下:

if let cardVIEw = Bundle.main.loadNibnamed("OverlayCard",owner: self,options: nil)?.first as? OverlayCard {  cardVIEw.backgroundcolor = UIcolor(displayP3Red: 1.0,green: 0.4,blue: 0.9,Alpha: 0.2)  let newplane = SCNPlane()  let newMaterial = SCNMaterial()  cardVIEw.Alpha = 0.2  cardVIEw.isOpaque = false  newMaterial.diffuse.contents = cardVIEw  newMaterial.blendMode = .add  newplane.materials = [newMaterial]  let vIEwNode = SCNNode(geometry: newplane)  self.addChildNode(vIEwNode)}

我已经离开了各种各样的事情,比如指定blendMode,backgroundcolor有0.2不透明度以及整个视图,因为这些都是我尝试过的东西,但仍然得到一个白色背景,其中一些视图的元素在白色的顶部非常淡出.还试过blendMode = .Alpha找不到区别.
‘self’这里是SCNNode的子类.

有谁知道如何让这个视图的背景淡化为透明,而不是淡化为白色?或者,另一种将视图加载到SceneKit中的方法.

提前致谢!

解决方法 尝试将视图层设置为diffuse.contents而不是视图本身.

newMaterial.diffuse.contents = cardVIEw.layer
总结

以上是内存溢出为你收集整理的swift – 将具有透明度的UIView(来自xib)添加到SceneKit全部内容,希望文章能够帮你解决swift – 将具有透明度的UIView(来自xib)添加到SceneKit所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1017775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存