我正在尝试使用Swift游乐场制作东西,并对自动布局感到困惑。我尝试使用自动布局,但最终出现错误“期望的声明” 这是我的代码-我只添加了相关的部分
import Foundation
import UIKit
import SpriteKit
public class GameView : UIView{
// let GameView : UIView!
override public init(frame: CGRect) {
super.init(frame: CGRect(x: 0, y: 0, width: 1500, height: 1000))
}
GameView.translatesAutoresizingMaskIntoConstraints = false
public override func addConstraints(_ constraints: [NSLayoutConstraint]) {
self.addConstraints([
NSLayoutConstraint(item: GameView.self, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .width, multiplier: 1.0, constant: 64),
NSLayoutConstraint(item: GameView.self, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .height, multiplier: 1.0, constant: 64),
NSLayoutConstraint(item: GameView.self, attribute: .centerX, relatedBy: .equal, toItem: self, attribute: .centerX, multiplier: 1.0, constant: 0),
NSLayoutConstraint(item: GameView.self, attribute: .centerY, relatedBy: .equal, toItem: self, attribute: .centerY, multiplier: 1.0, constant: 0),
])
}
答案 0 :(得分:0)
我认为您正在重写视图的addConstraints
函数,但从未调用过它。我认为,如果删除它并将此代码添加到初始化程序的末尾,则应该正确设置约束。
self.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
NSLayoutConstraint(item: self, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .width, multiplier: 1.0, constant: 64),
NSLayoutConstraint(item: self, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .height, multiplier: 1.0, constant: 64)
])
(最后两个约束,中心X和Y并没有做任何事情,因为它将视图的中心X约束到了自身。另外,我认为您的意思是self
在GameView.self
所在的位置)