Програмно надсилати на передній / задній елементи, створені з конструктора інтерфейсів


84

В інтерфейсі будівельника, є варіанти компоновки , щоб відправити назад або відправити на фронт які - небудь елементи , такі як UIButton, UIImage, і UILabelт.д. ...

Тепер я хотів би зробити те ж саме під час виконання програмно.

Чи є простий спосіб це зробити?

Я не хочу створювати різні подання, просто оновіть z-вісь.

Відповіді:


192

Існує ряд методів, UIViewщо дозволяють змінювати ієрархію подання.

Оскільки ваші подання вже вставлені у ваш суперперегляд, ви можете легко зателефонувати bringSubviewToFront:один раз для кожного перегляду в будь-якому порядку, який вам подобається.


Ви хочете сказати, що я не можу безпосередньо відправити UIBкнопку вперед / назад? Я повинен створити подання та додати його до цього подання. Тоді скористайтеся наведеними вище методами? Якщо так, чи є клас контролера місцем для створення такого подання?
Йохан Т.

11
Кнопка UIB - це підклас UIView. Просто зателефонуйте: [[myButton superview] bringSubviewToFront: myButton];
Себастьян Селіс

Тільки для усунення невеликого сумніву, який у мене виник: якщо ви вставите підпрогляд, який уже є в ієрархії подання, ОС перемістить лише своє положення. Отже, вставка, поки існує подання, не призведе до накладних витрат.
olivaresF

"дзвоніть bringSubviewToFront:один раз для кожного перегляду в будь-якому порядку, який вам подобається", це справді хитрість. Хороший.
Відповідь

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.