Sobes.tech
Junior — Middle

Kas AutoLayout-i saab muuta rakenduses teise täitmisvoo kaudu?

sobes.tech AI

Vastus AI-lt

AutoLayout (näiteks piirangute uuendamine) ei saa muuta teise täitmisvoo kaudu. Kõik kasutajaliidese muudatused, sealhulgas AutoLayout'iga töötamine, peavad toimuma peamisel lõngal (main thread).

Kui proovite muuta piiranguid taustalõngast, võib see põhjustada ettearvamatut käitumist, krahhe või visuaalseid artefakte.

Õige lähenemine on enne AutoLayout'i muutmist üle minna peamisele lõngale:

DispatchQueue.main.async {
    // piirangute uuendamine
    viewConstraint.constant = 20
    view.layoutIfNeeded()
}

Sel viisil tagatakse kasutajaliidese uuendamise ohutus ja õigsus.