Подтвердить что ты не робот

DrawRect поверх надзоров

Я подклассифицировал UIView и добавил к нему метод drawRect. Затем я определяю представление с использованием этого настраиваемого класса и добавляю к нему подпрограммы.

Проблема заключается в том, что drawRect кажется, что рисует материал под подзонами (следовательно, не видно).

Мне нужен материал, который drawRect рисуется над областями моего пользовательского UIView.

Возможно ли это?

4b9b3361

Ответ 1

Подвью всегда будет нарисовано на "вершине" своего супервизора.

В зависимости от ваших конкретных требований вам может потребоваться простой UIView в качестве представления background/container с вашими существующими subviews, а затем ваше пользовательское представление в качестве другого subview, добавленного к самому верхнему, поэтому оно имеет самый высокий Z-порядок.

Это будет работать, например, если ваш пользовательский вид был наложением сетки, который должен быть поверх всего остального. Пользовательский вид должен быть непрозрачным с четким цветом фона.

Ответ 2

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

Если вы хотите сделать рисунок выше, поместите еще один прозрачный subview как самый верхний подъярус в контейнер и нарисуйте его. Если вы отключите взаимодействие с пользователем, это не повлияет на вашу обработку касания.