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