Добавьте UIView в качестве подвида SuperView из собственного подкласса UView.

На самом деле я думаю, что это очень просто, и я что-то упускаю.

Я создаю подкласс UIView и вместо добавления его в качестве подвида из ViewController следующим образом:

rateus = RateFrameWork(AppID: "asdasds", BackGroundColor: UIColor.blueColor())
self.addSubView(rateus)

Я пытаюсь добавить его из подкласса, вот что я пробовал до сих пор:

class RateFrameWork: UIView 

1) Из супер кодера инициализации (доработка)

 required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        superview?.addSubview(self)

    }

2) Из метода инициализации (доработка)

init?(AppID: String!, BackGroundColor: UIColor!)
super.init(frame: CGRect(x:  0 , y: 0, width: UIScreen.mainScreen().bounds.size.width , height:UIScreen.mainScreen().bounds.size.height))
 superview?.addSubview(self)

Какие-либо предложения? Как я могу добавить его в качестве подвида из собственного подкласса?


person Roi Mulia    schedule 02.06.2015    source источник


Ответы (1)


Вы не можете этого сделать, потому что это противоречит идее.

Представление не имеет суперпредставления, если оно не должно быть добавлено в качестве подпредставления, и представление не знает, что оно будет добавлено в качестве подпредставления, при каких обстоятельствах и когда.

Некоторые специальные представления (например, AlertView, ActionView) могут быть добавлены в keyWindow, но не ваше представление.

person Bannings    schedule 02.06.2015
comment
Привет. Спасибо за Ваш ответ! Я знал, что могу сделать что-то вроде InitWithSuperVIew, вы знакомы с этим? - person Roi Mulia; 08.06.2015
comment
Эх… Я предпочитаю использовать showInView, а не initWithSuperView, как UIActionSheet - person Bannings; 08.06.2015
comment
На самом деле я понятия не имею, в чем отличия. Один из этих методов добавляет его в superView через процесс инициализации? - person Roi Mulia; 08.06.2015
comment
Я думаю, что разница в том, что showInView вызывается своим супервизором. Преимущество заключается в том, что он будет инициализирован, но не виден. Его superview может решить, когда показывать. - person Bannings; 08.06.2015
comment
Я использовал эту команду из подкласса или когда я объявляю объект (например, в представлении загружался) - person Roi Mulia; 08.06.2015