О принести SubviewToFront - PullRequest
       5

О принести SubviewToFront

4 голосов
/ 27 февраля 2011

Я вывожу элемент управления на передней панели с кодом ниже:

[self.view bringSubviewToFront:control];

Как я могу распознать между двумя элементами управления;какая из них впереди, а какая сзади

Ответы [ 2 ]

4 голосов
/ 27 февраля 2011

Вы бы проверили порядок представления в суперпредставлении (элементов управления, в вашем случае self.view) subviews свойство.

Представление с индексом 0 в подпредставлении суперпредставления является представлением в самой задней части, и тогда представление с индексом 1 будет поверх него, а представление с индексом 2 будет поверх представления с индексом. и т. д.
(в основном представление находится поверх представлений с меньшим индексом по сравнению с собственным индексом)

NSInteger indexOfControl1 = [[self.view subviews] indexOfObject:control1];
NSInteger indexOfControl2 = [[self.view subviews] indexOfObject:control2];
if (indexOfControl1 > indexOfControl2) {
    //control1 is on top of control2
}
2 голосов
/ 27 февраля 2011

Если эти элементы управления имеют одинаковое родительское представление, их z-порядок определяется их индексом в массиве subviews:

подпредставления : порядок подпредставлений в массиве отражает их видимый порядок на экран, с видом на индекс 0 будучи самым дальним видом.

Итак, ваши шаги будут:
1. Получить контроль
2. Получить их индексы в родительском массиве subviews (используя метод indexOfObject:)
3. Контроль с большим индексом впереди

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...