Middle
Kas võib teha kihitoiminguid eraldi niitides, kasutades peamist täitmisniiti?
sobes.tech AI
Vastus AI-lt
iOS-is, CALayer-iga seotud operatsioonid, nagu kihist omaduste muutmine (näiteks asukoht, läbipaistvus, transformatsioon), peavad toimuma peamisel niidil, kuna UIKit ja Core Animation ei ole niiditurvalised. Kuid rasked arvutused või andmete ettevalmistamine kihile (näiteks piltide genereerimine, teede arvutamine) võib toimuda taustaniidil, ning kihile tehtud uuendused rakendada juba peamisel niidil.
Näide:
DispatchQueue.global().async {
// Rasked arvutused
let image = generateImage()
DispatchQueue.main.async {
layer.contents = image.cgImage
}
}
Seega, otse kihiga seotud toiminguid eraldi niidil teha ei saa, kuid andmete ettevalmistamine on võimalik.