Sobes.tech
Middle

Արդյոք վերահսկիչը ստեղծելուց անմիջապես հետո ստեղծվում է նրա տեսքի օրինակ?

sobes.tech AI

Պատասխան AI-ից

Ոչ: դիտման օրինակ (view) UIViewController տիպի վերահսկիչի համար ստեղծվում է կարգավորված՝ առաջին անգամ դիմելով view հատկությանը:

UIKit-ը չի ստեղծում դիտումը անմիջապես վերահսկիչի ինիցիալիզացիայից հետո՝ ռեսուրսների օպտիմալացման համար: Դիտումը կարող է լինել տեսողականորեն բարդ և պահանջել շատ հիշողություն և պրոցեսորային ժամանակ ստեղծելու համար: Դիտումը "սպասարկվում" է միայն այն ժամանակ, երբ այն իսկապես անհրաժեշտ է էկրանին ցուցադրելու համար, համակարգը խնայելով ռեսուրսները:

Այս գործընթացը տեղի է ունենում, օրինակ, երբ վերահսկիչը ավելացվում է այլ վերահսկիչի կամ պատուհանի դիտողական հիերարխիայում կամ երբ նրա view հատկությունը հստակորեն կանչվում է: Եթե վերահսկիչը ինիցիալիզացված է, բայց երբեք չի ցուցադրվում կամ օգտագործվում, նրա դիտումը չի ստեղծվի:

Վահանակի և դիտման ստեղծման կյանքի ցիկլը ներառում է հետևյալ հիմնական կետերը:

  1. init(coder:) կամ init(nibName:bundle:): Վահանակը ինիցիալիզացված է, բայց view-ը դեռ nil է:
  2. Առաջին դիմումը view-ին: Եթե view-ը հավասար է nil, համակարգը կանչում է loadView() մեթոդը:
  3. loadView(): Այս մեթոդում դուք (կամ համակարգը ըստ նախնական կարգավորումների) ստեղծում եք վերահսկչի հիմնական դիտումը և նշանակում նրան view հատկությանը:
  4. viewDidLoad(): Այս մեթոդը կանչվում է հետո այն բանից հետո, երբ դիտումը բեռնվել և նշանակվել է view-ին: Այստեղ սովորաբար կատարվում է ենթադիտումների կարգավորում, տվյալների բեռնում և այլ գործողություններ, որոնք կախված են դիտման առկայությունից:

Օրինակ loadView()-ի վերագրում:

override func loadView() {
    // Փոխարենը բեռնել Storyboard/XIB-ից կամ ստեղծել դատարկ UIView
    // ստեղծում ենք մեր հատուկ դիտումը
    let customView = CustomContentView()
    view = customView
    // Այստեղ view արդեն ոչ `nil`
}

Կարևոր է հիշել, որ մեծ մասամբ դուք չի լինելու loadView()-ի ուղղակի վերագրում, այլ կվստահեք UIKit-ի ստանդարտ իրականացմանը, որը բեռնում է դիտումը Storyboard-ից, XIB ֆայլից կամ ստեղծում դատարկ UIView որպես նախնական։ Սակայն հասկանալը, թե երբ և ինչպես է ստեղծվում դիտումը, շատ կարևոր է։