как сохранить представление над другими взглядами - PullRequest
6 голосов
/ 13 марта 2011

У меня есть два вида (UIView): родительский и дочерний вид. Дочернее представление отображается поверх родительского представления по желанию. Однако мне нужно добавить подпредставления теперь, когда я хочу, чтобы они отображались ниже дочернего представления, но выше родительского представления. Какой простой способ сохранить первое дочернее представление сверху при добавлении новых подпредставлений? Я хотел бы сохранить недавно добавленный порядок отображения подпредставлений, соответствующий порядку вставки.

Ответы [ 2 ]

10 голосов
/ 13 марта 2011

Используйте любой из следующих методов UIView для контроля глубины.

– bringSubviewToFront:
– sendSubviewToBack:
– insertSubview:atIndex:
– insertSubview:aboveSubview:
– insertSubview:belowSubview:

Это взято из Руководства по программированию View документов в разделе View Hierarchies and Subview Management,

Каждое суперпредставление хранит свои подпредставления в упорядоченном массиве, и порядок в этом массиве также влияет на видимость каждого подпредставления. Если два дочерних подпредставления перекрывают друг друга, то одно, которое было добавлено последним (или было перемещено в конец массива подпредставлений), появится поверх другого.
1 голос
/ 13 марта 2011

Я бы предложил создать метод-оболочку для addSubview.Как то так:

- (void)insertSubviewBetweenParentAndChild:(UIView *)newChild {
    [self insertSubview:newChild aboveSubview:parentView];
}
...