UIkit 元素在 overlaySKScene for AR 中看不到

UIkit elements can't see in overlaySKScene for AR

我使用 overlaySKScene 制作了一些带有界面的简单 AR 应用程序。

在viewDidLoad中,我在主ARSCNView中应用了叠加场景(OverlayScene是我class继承的SKScene)。

self.sceneView.overlaySKScene = [[OverlayScene alloc] initWithSize:self.sceneView.bounds.size];  
self.sceneView.overlaySKScene.delegate = self; 

然后,我在 OverlayScene init 中添加了 UIkit 按钮。

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];  
[button setTitle:@"button" forState:UIControlStateNormal];  
button.layer.position = CGPointMake(self.view.frame.size.width/2, 200);  
[self.view addSubview:button];  

但是,该按钮没有出现在屏幕上。 当我在这个场景中添加精灵节点时,它起作用了。

有没有其他方法或者bug?

谢谢。

OverlaySceneinit 并不是真正合适的地方,因为 self.view 将等于 nil 因为场景初始化时它还没有要添加到视图层次结构中。更好的选择可能是 SKScene 生命周期方法 - (void)didMoveToView:(SKView *)view;,例如:

- (void)didMoveToView:(SKView *)view {
    [super didMoveToView:view];
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];  
    [button setTitle:@"button" forState:UIControlStateNormal];  
    button.layer.position = CGPointMake(self.view.frame.size.width/2, 200);  
    [self.view addSubview:button];
}