任何人都可以帮我解决这个xcode问题吗?

时间:2014-04-03 10:24:44

标签: ios css iphone objective-c ipad

我正试图让我的应用程序在iPad上正确显示,就像我在文本位置上运行一样;

label.position = CGPointMake(-180, -135);

这是针对iPhone res位置设置的,但当然在iPad上运行时,位置完全关闭(仍然在iPhone的相同位置)。

如果检测到iPad,我可以添加任何内容来自动调整位置吗?

我的完整代码如下所示!;

SKLabelNode *label = [SKLabelNode labelNodeWithFontNamed:@"Helvetica"];
label.fontSize = 14;
label.fontColor = [SKColor yellowColor];
label.text = @"-Shield Power-";
label.position = CGPointMake(-180, -135);
label.alpha = 1;
[self addChild:label];

2 个答案:

答案 0 :(得分:0)

您可以通过某种方式检测您是在iPad还是iPhone上运行。然后为该职位实施一个if语句。

  UIDevice* thisDevice = [UIDevice currentDevice];
    if(thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
    {
        // iPad
    }
    else
    {
        // iPhone
    }

话虽如此,您还可以尝试自动布局和约束。您可以拥有两个故事板(每个设备一个)并分别设置视图。

答案 1 :(得分:0)

您想使用CGGeometry类 - https://developer.apple.com/library/ios/documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html - 这将使您能够执行以下操作:

CGRectGetWidth(self.view.frame);

CGRectGetMinY(self.view.frame);

然后为你的CGPoint构建X和Y坐标,例如

CGPointMake(CGRectGetMinX(self.view.frame)-180,CGRectGetMinY(self.view.frame)-135);

或使用百分比,以便一切都以动态方式发生,如下所示:

CGPointMake(CGRectGetMinX(self.view.frame)-CGRectGetWidth(self.view.frame)*0.5,CGRectGetMinY(self.view.frame)-CGRectGetHeight(self.view.frame)*0.3);