drawRect поверх подпредставлений - PullRequest
38 голосов
/ 08 октября 2011

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

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

Я хочу, чтобы вещи, которые drawRect рисовали, появлялись над подпредставлениями моего обычая UIView.

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

Ответы [ 2 ]

28 голосов
/ 08 октября 2011

Подвид всегда будет отображаться в верхней части своего суперпредставления.

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

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

10 голосов
/ 08 октября 2011

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

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

...