Кай вақт бояд усули loadView тағир дода шавад?
sobes.tech AI
Ҷавоб аз AI
Додасозии методи loadView бояд танҳо дар ҳолатҳои истифода накардани сторибордҳо ё файлҳои .xib барои эҷоди намоишгоҳи контроллер (view). Дар чунин ҳолатҳо, шумо тамоми хирархияи намоишҳоро дар loadView ба таври барномавӣ месозед, ба ҷои он ки иҷозат диҳед UIViewController онро аз Interface Builder боргирӣ кунад.
Дар дохили loadView шумо бояд:
- Намоишгоҳи асосиро (
view) барои контроллер созед. - Намоишгоҳи сохташударо ба хусусияти
self.viewтаъин кунед.
Ҳеҷ гоҳ дар вақти иваз кардани ин метод [super loadView] нафармуд кунед, зеро ин метавонад ба гардиши беохир ё таъсири тарафҳои номувофиқ оварда расонад.
// Намунаи ивазкунии loadView
override func loadView() {
// Сохтани намоишгоҳи асосӣ барномавӣ
let newView = UIView()
newView.backgroundColor = .white
// Сохтани ва илова кардани зернамоишҳо
let label = UILabel()
label.text = "Салом аз коди!"
label.translatesAutoresizingMaskIntoConstraints = false // Идоракунии Auto Resizing Mask
newView.addSubview(label)
// Танзим кардани констрейнтҳо барои зернамоишҳо
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: newView.centerXAnchor),
label.centerYAnchor.constraint(equalTo: newView.centerYAnchor)
])
// Таъин кардани намоишгоҳи сохташударо ба `self.view`
self.view = newView
}
Истифодаи loadView барои эҷоди UI барномавӣ:
| Манфиатҳо | Норасоиҳо |
|---|---|
| Контроли пурра дар сохтани UI. | Бисёр код барои навиштан. |
| Имконият барои сохтани UI мураккаб, динамикӣ. | Таҳлил кардани сохтори UI душвор аст. |
| Имконият барои беҳтар кардани иҷроиш барои UI хеле мураккаб. | Интуитивӣ камтар барои ҳамкорӣ дар UI. |
Дар аксари барномаҳои муосири iOS, истифодаи сторибордҳо ё .xib файлҳо тавсия дода мешавад, ки дар он loadView автоматӣ барои бор кардани намоиш аз ин манбаъҳо даъват мешавад. Иваз кардани loadView як роҳи пасттар аст, ки бояд танҳо дар ҳолате истифода шавад, ки воқеан зарур аст.