Sobes.tech
Junior — Middle

Da li je moguće izvršiti podešavanje AutoLayout-a van glavnog toka?

sobes.tech АИ

Одговор од АИ

Podešavanje AutoLayout-a u iOS-u treba obaviti na glavnom thread-u (main thread), jer sve operacije sa UI-jem treba da se odvijaju upravo tamo. AutoLayout utiče na raspored i veličinu UI elemenata, a UIKit nije thread-safe.

Ako pokušate da izmenite constraint-e ili pozovete metode povezane sa AutoLayout-om iz pozadinskog thread-a, to može dovesti do nepredvidivog ponašanja, padova ili upozorenja.

Zato sve promene vezane za AutoLayout treba da se obavljaju na glavnom thread-u, na primer:

DispatchQueue.main.async {
    // Izmena constraint-a
    viewConstraint.constant = 20
    view.layoutIfNeeded()
}

Ukratko: ne preporučuje se konfiguracija AutoLayout-a van glavnog thread-a, jer može izazvati greške.