Junior — Middle
Интерфейсдин түзүлүшүн жаңыртуу жагынан setNeedsLayout жана layoutIfNeeded ыкмаларынын айырмасы эмнеде?
sobes.tech AI
AIден жооп
setNeedsLayout жана layoutIfNeeded UIView үчүн макеттин жаңылануусун башкарган ыкмалары.
-
setNeedsLayoutкөрүүнү макеттин жаңылануусуна муктаж деп белгилейт. Бул асинхрон чакыруусу: системасыlayoutSubviewsчакыруусун кийинки интерфейс жаңылоо циклинде пландаштырат. -
layoutIfNeededкөрүүнү дароо макетти жаңылат, эгер ал муктаж деп белгиленсе. Эгер мурдаsetNeedsLayoutчакырылган болсо, андаlayoutIfNeededlayoutSubviews'ти дароо чакырган болот.
Мисал:
view.setNeedsLayout() // жаңылануусу керектигин белгилөө
// ...
view.layoutIfNeeded() // керек болсо, дароо жаңылоо
Ушул жол менен, setNeedsLayout жаңылоону кечиктирет, ал эми layoutIfNeeded керек болсо аны дароо аткарат.