如何将ARSCNView边界裁剪为圆形?

时间:2019-02-28 09:19:54

标签: ios swift scenekit arkit

由于ARSCNView是UIView的子类,因此剪切ARSCNView应该很简单。

在样板(sceneView.session.run(configuration))逻辑之后,可以在ViewController中以编程方式添加场景视图:

sceneView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(sceneView)

NSLayoutConstraint.activate([
    sceneView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 1.0),
    sceneView.heightAnchor.constraint(equalTo: sceneView.widthAnchor, multiplier: 1.0),
    sceneView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
    sceneView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
])

sceneView显示为正方形。

但是,添加剪辑/蒙版无效。

sceneView.layer.masksToBounds = true
sceneView.clipsToBounds = true
sceneView.layer.cornerRadius = UIScreen.main.bounds.width/2

发生的情况是sceneView仍然是正方形。

奇怪的是,当应用程序启动(或加载了视图)时,剪辑起作用了,因此sceneView是一个圆圈。另外,当我退出应用程序时,应用程序的快照将sceneView显示为一个圆圈。而且,当我打开iOS屏幕录像时,sceneView会显示为一个圆圈。

这对我来说似乎是个虫子?正常运行时,sceneView显示时没有剪切。但是,当sceneView进入/退出(或内存受限制)时,它显示为一个圆(按预期方式)。

有人遇到这个问题并且知道如何解决吗?还是我们应该提起雷达。谢谢!

0 个答案:

没有答案