Xcode错误-UIView中的预期声明

时间:2019-03-23 18:43:56

标签: ios swift xcode

我正在尝试使用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),
            ])
    }

1 个答案:

答案 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约束到了自身。另外,我认为您的意思是selfGameView.self所在的位置)