DrawRect поверх надзоров
Я подклассифицировал UIView
и добавил к нему метод drawRect
. Затем я определяю представление с использованием этого настраиваемого класса и добавляю к нему подпрограммы.
Проблема заключается в том, что drawRect
кажется, что рисует материал под подзонами (следовательно, не видно).
Мне нужен материал, который drawRect
рисуется над областями моего пользовательского UIView
.
Возможно ли это?
Ответы
Ответ 1
Подвью всегда будет нарисовано на "вершине" своего супервизора.
В зависимости от ваших конкретных требований вам может потребоваться простой UIView в качестве представления background/container с вашими существующими subviews, а затем ваше пользовательское представление в качестве другого subview, добавленного к самому верхнему, поэтому оно имеет самый высокий Z-порядок.
Это будет работать, например, если ваш пользовательский вид был наложением сетки, который должен быть поверх всего остального. Пользовательский вид должен быть непрозрачным с четким цветом фона.
Ответ 2
Нет. Подзоны всегда появляются над контейнером. Ничто не мешает вам сделать видимость (частично) прозрачной, конечно.
Если вы хотите сделать рисунок выше, поместите еще один прозрачный subview как самый верхний подъярус в контейнер и нарисуйте его. Если вы отключите взаимодействие с пользователем, это не повлияет на вашу обработку касания.