Արդյոք վերահսկիչը ստեղծելուց անմիջապես հետո ստեղծվում է նրա տեսքի օրինակ?
sobes.tech AI
Պատասխան AI-ից
Ոչ: դիտման օրինակ (view) UIViewController տիպի վերահսկիչի համար ստեղծվում է կարգավորված՝ առաջին անգամ դիմելով view հատկությանը:
UIKit-ը չի ստեղծում դիտումը անմիջապես վերահսկիչի ինիցիալիզացիայից հետո՝ ռեսուրսների օպտիմալացման համար: Դիտումը կարող է լինել տեսողականորեն բարդ և պահանջել շատ հիշողություն և պրոցեսորային ժամանակ ստեղծելու համար: Դիտումը "սպասարկվում" է միայն այն ժամանակ, երբ այն իսկապես անհրաժեշտ է էկրանին ցուցադրելու համար, համակարգը խնայելով ռեսուրսները:
Այս գործընթացը տեղի է ունենում, օրինակ, երբ վերահսկիչը ավելացվում է այլ վերահսկիչի կամ պատուհանի դիտողական հիերարխիայում կամ երբ նրա view հատկությունը հստակորեն կանչվում է: Եթե վերահսկիչը ինիցիալիզացված է, բայց երբեք չի ցուցադրվում կամ օգտագործվում, նրա դիտումը չի ստեղծվի:
Վահանակի և դիտման ստեղծման կյանքի ցիկլը ներառում է հետևյալ հիմնական կետերը:
init(coder:)կամinit(nibName:bundle:): Վահանակը ինիցիալիզացված է, բայցview-ը դեռnilէ:- Առաջին դիմումը
view-ին: Եթեview-ը հավասար էnil, համակարգը կանչում էloadView()մեթոդը: loadView(): Այս մեթոդում դուք (կամ համակարգը ըստ նախնական կարգավորումների) ստեղծում եք վերահսկչի հիմնական դիտումը և նշանակում նրանviewհատկությանը:viewDidLoad(): Այս մեթոդը կանչվում է հետո այն բանից հետո, երբ դիտումը բեռնվել և նշանակվել էview-ին: Այստեղ սովորաբար կատարվում է ենթադիտումների կարգավորում, տվյալների բեռնում և այլ գործողություններ, որոնք կախված են դիտման առկայությունից:
Օրինակ loadView()-ի վերագրում:
override func loadView() {
// Փոխարենը բեռնել Storyboard/XIB-ից կամ ստեղծել դատարկ UIView
// ստեղծում ենք մեր հատուկ դիտումը
let customView = CustomContentView()
view = customView
// Այստեղ view արդեն ոչ `nil`
}
Կարևոր է հիշել, որ մեծ մասամբ դուք չի լինելու loadView()-ի ուղղակի վերագրում, այլ կվստահեք UIKit-ի ստանդարտ իրականացմանը, որը բեռնում է դիտումը Storyboard-ից, XIB ֆայլից կամ ստեղծում դատարկ UIView որպես նախնական։ Սակայն հասկանալը, թե երբ և ինչպես է ստեղծվում դիտումը, շատ կարևոր է։