Sobes.tech
Middle+

Kada turėtumėte keisti loadView metodą?

sobes.tech AI

Atsakymas iš AI

Keisti loadView metodą reikia tik tada, kai ne naudojate storyboard'us ar .xib failus, kad sukurtumėte valdiklio vaizdą (view). Tokiu atveju visą vaizdų hierarchiją kuriate programiškai loadView viduje, o ne leidžiate UIViewController ją įkelti iš Interface Builder.

loadView viduje turėtumėte:

  1. Sukurti pagrindinį vaizdą (view) valdikliui.
  2. Priskirti sukurtą vaizdą self.view savybei.

Niekada nevykdykite [super loadView] perrašydami šį metodą, nes tai gali sukelti begalinį ciklą ar kitus nepageidaujamus šalutinius efektus.

// Pavyzdys, kaip perrašyti loadView
override func loadView() {
    // Programiškai sukuriame pagrindinį vaizdą
    let newView = UIView()
    newView.backgroundColor = .white

    // Sukuriame ir pridedame subvaizdus
    let label = UILabel()
    label.text = "Sveiki iš kodo!"
    label.translatesAutoresizingMaskIntoConstraints = false // Išjungti Auto Resizing Mask
    newView.addSubview(label)

    // Nustatome konstruočių subvaizdams
    NSLayoutConstraint.activate([
        label.centerXAnchor.constraint(equalTo: newView.centerXAnchor),
        label.centerYAnchor.constraint(equalTo: newView.centerYAnchor)
    ])

    // Priskiriame sukurtą vaizdą `view` savybei
    self.view = newView
}

Naudojant loadView programiškai kuriant UI:

Privalumai Trūkumai
Pilnas kontrolė kuriant UI. Daug daugiau kodo rašyti.
Galimybė kurti sudėtingus, dinamiškus UI. Sunku vizualiai įvertinti UI struktūrą.
Galimai geresnis našumas labai sudėtingam UI. Mažiau intuityvu bendradarbiaujant su UI.

Dauguma šiuolaikinių iOS programų naudoja storyboard'us arba .xib failus, kur loadView automatiškai kviečiamas įkelti vaizdą iš šių išteklių. loadView perrašymas yra žemesnio lygio metodas, kurį reikėtų naudoti tik tada, kai tai tikrai būtina.