我用Xcode 7 Beta做了一个游戏,我放了一些按钮,但是他们没有按照它的预定安排,在一些iPhone上他们留在左边的其他一些iPhone上,他们留在右边,并且它应该留在中心。
上
我使用的代码是:
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)
}
我希望你能帮助我错过的东西。
答案 0 :(得分:1)
您可能希望使用Autolayout's constraints mechanism在不同屏幕上定义这些按钮的所需位置。否则,您可能最终会进行不必要且复杂的宽度和偏移计算,只是为了在视图中定位少量元素。
您可以将这些按钮分组到UIView元素中,并使用约束将元素居中。