2016-12-17 2 views
0

Я являюсь полным быстрым noob. Я пытаюсь построить динамические объекты. В моем примере я пытаюсь создать экземпляры класса PAGE из моего класса BOOK. Наверное, я не уверен, как динамически создавать их/называть их или ссылаться на них позже. Я понимаю, что я не могу создавать динамические имена ... Я предполагаю, что я помещал их в массив tan? Любая помощь или ввод оцениваются.Создание динамического объекта в Swift 3

//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) 

ответ

0

Я не знаю, правильно ли я правильно определил ваш вопрос. Но ознакомьтесь с этим:

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") 
} } 
+0

Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст относительно * почему * и/или * как этот код отвечает на вопрос, улучшает его долгосрочную ценность. http://stackoverflow.com/help/how-to-answer – jtbandes

Смежные вопросы