如何使用Xcode 7 Beta将快捷代码放在中心?

时间:2015-08-11 12:26:48

标签: swift autolayout xcode7

我用Xcode 7 Beta做了一个游戏,我放了一些按钮,但是他们没有按照它的预定安排,在一些iPhone上他们留在左边的其他一些iPhone上,他们留在右边,并且它应该留在中心。

  

这是在iPhone 5 / 5s上,应该是enter image description here

     

这是在iPhone 4s enter image description here

上      

这是在iPhone 6上   enter image description here

我使用的代码是:

override func didMoveToView(view: SKView) {

    leaderboard()
    facebookShare()
    twitterShare()
    removeAds()
}




func leaderboard() {
   let myNode = SKSpriteNode(imageNamed: "buttonLeaderboard")

    myNode.position = CGPoint(x: CGFloat(120 + BUTTON_WIDTH + BUTTON_SPACING), y: view!.frame.maxY * 0.25)
    myNode.size = CGSizeMake(80.0, 40.0)
    self.addChild(myNode)
}


func facebookShare() {
    let facebookShareNode = SKSpriteNode(imageNamed: "buttonFacebookShare")
    facebookShareNode.position = CGPoint(x: CGFloat(130 + BUTTON_WIDTH * 2 + BUTTON_SPACING * 2), y: view!.frame.maxY * 0.25)
    facebookShareNode.size = CGSizeMake(40.0, 40.0)
    self.addChild(facebookShareNode)
}


func twitterShare() {
    let twitterShareNode = SKSpriteNode(imageNamed: "buttonTwitterShare")
    twitterShareNode.position = CGPoint(x: CGFloat(180 + BUTTON_WIDTH * 2 + BUTTON_SPACING * 2), y: view!.frame.maxY * 0.25)
    twitterShareNode.size = CGSizeMake(40.0, 40.0)
    self.addChild(twitterShareNode)
}

func removeAds() {
    let removeAdsNode = SKSpriteNode(imageNamed: "buttonRemoveAds")
    removeAdsNode.position = CGPoint(x: CGFloat(250 + BUTTON_WIDTH * 2 + BUTTON_SPACING * 2), y: view!.frame.maxY * 0.25)
    removeAdsNode.size = CGSizeMake(80.0, 40.0)
    self.addChild(removeAdsNode)
}

我希望你能帮助我错过的东西。

1 个答案:

答案 0 :(得分:1)

您可能希望使用Autolayout's constraints mechanism在不同屏幕上定义这些按钮的所需位置。否则,您可能最终会进行不必要且复杂的宽度和偏移计算,只是为了在视图中定位少量元素。

您可以将这些按钮分组到UIView元素中,并使用约束将元素居中。

设置元素的中心水平和垂直约束的示例: center constraints