layer.zPosition не работает с не-братскими UIViews - PullRequest
1 голос
/ 29 марта 2011

У меня достаточно сложная иерархия UIImageView с.Первоначально я тщательно менял порядок братьев и сестер, когда один UIImageView двигался впереди другого.Затем я узнал о myUIImageView.layer.zPosition и переключился на использование этого вместо.Получилось намного проще.Это даже работает почти все время.Из этого SO вопроса я узнал, что zPosition работает только среди родственных слоев.Большой!Итак, у меня два вопроса: есть ли какая-либо документация по этому поводу?и есть ли какая-то выдумка, которую я могу использовать, чтобы заставить это работать?(например, добавление всех моих UIImageViews в UIView, который никогда не виден).Спасибо заранее.

1 Ответ

5 голосов
/ 29 марта 2011

Из заголовка вашего вопроса мне интересно, понимаете ли вы, что свойство zPosition работает с одноуровневыми слоями , а не с одноуровневыми представлениями. Чтобы иметь дело с глубиной каждого изображения, имеющегося у вас со свойством zPosition, вам нужно, чтобы все изображения были слоями-братьями в одном объекте UIView. Свойство zPosition задокументировано в Apple Core Animation Programming Guide :

Свойство zPosition указывает компонент оси z положения слоя. ZPosition предназначено для установки визуального положения слоя относительно его родственных слоев. Его не следует использовать для указания порядка элементов одного уровня, вместо этого переупорядочьте слой в массиве подслоев.

...