Swift 在对象上方创建视图

Swift 在对象上方创建视图,swift,Swift,我试图在Swift中创建一个场景,其中单击一个对象(对象是一个按钮),并在单击的建筑上方创建一个弹出窗口。我以为我把它搞定了,直到它给我一个错误,说,当打开一个可选的或类似的东西时,意外的零值。这是密码。感谢您的修复 import UIKit class BuildingUI { //props enum buildingTypes { case residential case commercial } var xValue : CGFloat = 0 var width

我试图在Swift中创建一个场景,其中单击一个对象(对象是一个按钮),并在单击的建筑上方创建一个弹出窗口。我以为我把它搞定了,直到它给我一个错误,说,当打开一个可选的或类似的东西时,意外的零值。这是密码。感谢您的修复

import UIKit

class BuildingUI {

//props
enum buildingTypes {
    case residential
    case commercial
}

var xValue : CGFloat = 0
var width : CGFloat = 0

//methods
func createBuildingView(xValue : CGFloat, width : CGFloat, buildingType : buildingTypes) {
    self.xValue = (xValue+(width/2))
    playScreenIns.BuildingView1.frame = CGRect(x: self.xValue, y: playScreenIns.PlayView.frame.height/10, width: (playScreenIns.PlayView.frame.width/5)*3, height: playScreenIns.PlayView.frame.height/4)
    playScreenIns.BuildingView1.backgroundColor = UIColor.lightGrayColor()
    playScreenIns.BuildingView1.layer.borderWidth = 2
    playScreenIns.BuildingView1.layer.borderColor = UIColor.darkGrayColor().CGColor
    playScreenIns.BuildingView1.layer.cornerRadius = 25
    playScreenIns.scroller.addSubview(playScreenIns.BuildingView1)
}

}

var BuildingUIIns = BuildingUI()




import UIKit

class PlayScreen : UIViewController {

@IBOutlet var PlayView: UIView!
var BuildingView1 : UIView!

@IBAction func CityHallPress(sender: UIButton!) {

        BuildingUIIns.createBuildingView(sender.frame.origin.x, width: sender.frame.width, buildingType: .residential)


}



}

var playScreenIns = PlayScreen()

在检查代码和注释之后。我相信你想要的是

BuildingUI
应继承
UIView

class BuildingUI: UIView {}
然后在您的
播放屏幕中
buildingview 1
应为
BuildingUI
类型

但是,我不太确定你们想做什么……你们是在操场上做实验测试吗

另一方面,您应该使用后缀来命名类,例如,您继承的类的类型

BuildingUI
应该是
BuildingView
PlayScreen
应该是
playscreenview控制器


您应该像在
BuildingUI
中一样,以小写的
BuildingView1
开始类属性。但我想这是品味的问题

它给出的错误在playScreenIns.BuildingView1.frame=中的“
createBuildingView
”是什么类?我看不到它,我也看不到你在哪里初始化(或设置)了“
PlayView
”属性那么你的建筑就有了一个属性
playScreenIns
什么是
playScreenIns
?我刚注意到你实例化了剧本。你的建筑我不知道剧本是什么。