Swift:以编程方式对齐不同IOS屏幕尺寸的标签

时间:2015-03-14 07:03:44

标签: ios swift cocos2d-iphone label

我是Swift和ios开发的新手。我的应用程序中有6个标签和一个水平SKScene。我想精美地自动对齐这6个标签。现在我已经修复了位置,并且对齐在某些屏幕尺寸上看起来总是很糟糕,而在另

我没有使用故事板或其他图形编辑器来构建ui,但一切都是在代码中完成的。因此,我正在寻找用于处理对齐的程序化解决方案(代码示例)。

3 个答案:

答案 0 :(得分:2)

如果你想将它们水平放置在屏幕中间,但是给它们不同的y位置,你可以为每个标签做这样的事情:

label.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMaxY(self.frame) * 0.80)

要将它们放在不同的y位置,只需将maxY乘以不同的十进制数。这样,所有标签都沿着x轴对齐并出现在不同的y位置,就像一列,它们将以这种方式出现在每个屏幕尺寸上,因为它们相对于屏幕尺寸而不是固定位置

答案 1 :(得分:1)

您可以像这样对齐标签(例如在屏幕中央)。

var label1 = UILabel(CGRectMake: 0, 0, 200, 40)
label1.center = CGPointMake(UIScreen.mainScreen().bounds.size.width/2, 30)

var label2 = UILabel(CGRectMake: 0, 0, 200, 40)
label2.center = CGPointMake(UIScreen.mainScreen().bounds.size.width/2, label1.center.y + 30)

等等。只需引用主屏幕边界而不是静态点进行对齐,以便它们以任何屏幕大小为中心。

答案 2 :(得分:1)

我最终做的是创建一个空的SKSprite,其中包含了SKLabels。现在我可以通过像素控制标签之间的距离,但是尽管屏幕大小,仍然将屏幕中间的顶级精灵对齐。