繁体   English   中英

相对于ADBannerView定位对象

[英]Positioning objects relative to an ADBannerView

我一直在尝试围绕iAd横幅视图的坐标包裹头,这显然是根据其自身的规律进行的。 我在屏幕底部有一个横幅视图,并且同样定义它:

    adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
    CGRect adFrame = adView.frame;
    adFrame.origin.y = self.scene.view.frame.size.height - adView.frame.size.height;
    adView.frame = adFrame;
    [self.view addSubview:adView];

(这是在Sprite Kit场景内部)所以现在,我想相对于该标语视图放置一个对象/节点。 我的第一个直觉是将这个物体比横幅高5倍

node.position = CGPointMake(CGRectGetMidX(self.frame), adView.frame.size.height + 5);

但是,这并没有给我任何可喜的结果,因此我决定对其进行硬编码,结果表明,如果我将y值设置为64ish左右,我将能够获得想要的结果。 我在iPhone 6上测试了此值,这给了我想要的功能,但是当我在iPhone 5上尝试该值时,它消失在横幅视图下。 如果不考虑型号,iPhone adBannerView的高度为50,这似乎是非常矛盾的。

任何帮助将不胜感激,谢谢!

问题在于您的场景正在缩放,因此您指定的位置在设备上会有所不同。 您要相对于视图放置节点,因为这是横幅所在的位置。 为此,您可以使用SKView的convertPointToScene方法将视图坐标转换为场景坐标。 见我对相对节点定位到视图的答案在这里获得更多信息。

通过将场景的scaleMode设置为ResizeFill,也可以选择根本不缩放场景。 这将导致您的位置在所有设备上保持一致,因为不会缩放坐标。 您可以这里查看我有关场景缩放的答案,以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM