Sobes.tech
Junior — Middle

Կարո՞ղ է AutoLayout-ը փոխել հավելվածում այլ գործարկման հոսքից։

sobes.tech AI

Պատասխան AI-ից

AutoLayout-ты (мисалы, шектөөлөрдү жаңыртуу) башка аткаруучу агымынан өзгөртүү мүмкүн эмес. Бардык UI өзгөртүүлөрү, анын ичинде AutoLayout менен иштөө, негизги агымда (main thread) жүргүзүлүшү керек.

Эгер шектөөлөрдү фондук агымдан өзгөртүүгө аракет кылсаңыз, бул алдын ала көрүлбөгөн жүрүм-турумга, ката кетүүлөргө же визуалдык arteфакттарга алып келиши мүмкүн.

Туура ыкма — AutoLayoutту өзгөртүүдөн мурун негизги агымга өтүү:

DispatchQueue.main.async {
    // шектөөлөрдү жаңылоо
    viewConstraint.constant = 20
    view.layoutIfNeeded()
}

Мындай жол менен интерфейс жаңылоонун коопсуздугу жана тактыгы камсыздалат.