Перекрывающиеся UIViews - PullRequest
       12

Перекрывающиеся UIViews

1 голос
/ 28 марта 2011

У меня есть 4 UIView (у каждого есть видимая часть на экране), и я хочу, чтобы они были перетаскиваемыми. Я добавляю их, как и любой другой вид на контроллере с

addSubview:dragViewTop
addSubview:dragViewBottom
addSubview:dragViewRight
addSubview:dragViewLeft

Моя проблема в том, что если я перетаскиваю один вид поверх другого, даже если я изменяю его layer.zPosition, я могу перетащить тот, который должен быть ниже. Такое поведение задается (я думаю, не уверен) порядком добавленных просмотров.

Я хочу, чтобы перетаскиваемый вид оставался сверху. Есть идеи? Надеюсь, я ясно дал понять.

Ответы [ 2 ]

3 голосов
/ 28 марта 2011

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

Используйте следующие методы суперпредставления, чтобы настроить глубину подпредставлений.Кажется, вам, вероятно, нужен только первый метод.

- (void)bringSubviewToFront(UIView *)view
- (void)sendSubviewToBack(UIView *)view
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2
1 голос
/ 28 марта 2011

Чтобы вывести view наверх:

[view.superview bringSubviewToFront:view];

(примечание: это передняя часть подпредставлений view.superview, поэтому виды, находящиеся перед суперпредставлением, будут оставаться впереди)

...