我是一个十足的敏捷菜鸟。我正在尝试构建动态对象。在我的示例中,我尝试从 BOOK 类创建 PAGE 类的实例。我想我不确定如何动态创建它们/命名它们或引用它们以供以后使用。我知道我无法创建动态名称...我猜我将它们放入 tan 数组中?感谢任何帮助或意见。
//page class
class pageview : UIView {
var page: UIView!
init () {
super.init(frame: CGRect(x: 0, y: 0, width: bookwidth, height: bookheight))
page = UIView(frame: CGRect(x: bookposx, y: bookposy, width: bookwidth, height: bookheight))
page.backgroundColor = UIColor.blue
book.addSubview(page)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
//book class
class bookview : UIView {
var cover: UIView!
var backcover: UIView!
var page: UIImageView!
init (numberofpages: Int) {
super.init(frame: CGRect(x: 0, y: 0, width: bookwidth, height: bookheight))
//pages
for i in 0 ..< numberofpages {
//PROBLEM HERE
let page (i) = pageview()
self.addSubview(page (i))
}
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
//add book
let book = bookview(numberofpages: 3)
container.addSubview(book)
最佳答案
我不知道我是否正确理解你的问题。但看看这个:
class bookview : UIView {
var cover: UIView!
var backcover: UIView!
var pages: [pageview] = []
init (numberofpages: Int) {
super.init(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
//pages
for _ in 0 ..< numberofpages {
let page = pageview()
pages.append(page)
self.addSubview(page)
}
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
} }
关于ios - Swift 3 中的动态对象创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41202461/