Sobes.tech
Junior — Middle

Šta se dešava prilikom poziva metode setNeedsLayout u poređenju sa layoutIfNeeded u pogledu sinhronizacije izvršenja?

sobes.tech АИ

Одговор од АИ

Metoda setNeedsLayout označava pogled kao da zahteva ažuriranje rasporeda, ali sam poziv ažuriranja se dešava asinhrono — u sledećem ciklusu ažuriranja interfejsa. To znači da nakon poziva setNeedsLayout, sistem odlaže poziv layoutSubviews do sledećeg prolaska kroz ciklus renderovanja.

Za razliku od toga, layoutIfNeeded vrši raspored sinhrono, ako je pogled označen kao da zahteva ažuriranje. To znači da poziv layoutIfNeeded odmah poziva layoutSubviews, ako je potrebno, i odmah ažurira raspored elemenata.

Primer:

view.setNeedsLayout() // Odloženi raspored
// Ovde `layoutSubviews` još nije pozvan

view.layoutIfNeeded() // Neposredan raspored, ako je potrebno
// Ovde je `layoutSubviews` već pozvan