Скрытие суперпредставления без скрытия его подпредставлений - PullRequest
2 голосов
/ 19 ноября 2010

Обычно я знаю, что для этого есть обходные пути, но есть ли в iOS SDK простой способ скрыть суперпредставление, не скрывая его подпредставления?

У меня есть родительское представление, которое является фоном для нескольких других представлений. Я хотел бы скрыть родителя, либо установив его прозрачность на 0, либо установив «скрытый», либо что-то в этом роде. Проблема в том, что эти изменения влияют на все подпредставления родителя.

Опять же, я понимаю, что обычно есть способ обойти это, но в этом случае я имею дело с mapView, а мои подпредставления представляют собой аннотации и наложения.

Спасибо, -Matt

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

Обновление

Да, в MKMapView будет несколько слоев с рендерингом, поэтому настройка backgroundColor работать не будет. Вы можете попробовать создать подкласс MKMapView, чтобы добавить свойство для включения / выключения этих слоев (удаляя / повторно добавляя их в представление). Но это кажется довольно опасным.

Вы можете попробовать установить "clipsSubviews" MKMApView в значение NO / FALSE и сбросить фрейм в 0,0,0,0. Но это повлияет на вашу способность передавать события Touch в ваши подпредставления.

Вероятно, это лучшее решение для переоценки иерархии ваших представлений. Сделайте что-то вроде:

main-view
  map-view
  transparent-view
    control-1
    control-2
    etc.

Оригинал

Установите backgroundColor на [UIColor clearColor]

0 голосов
/ 02 июля 2018

Вы можете установить свойство backgroundColor суперпредставления на .clear, и это не повлияет на внешний вид подпредставления.

superView.backgroundColor = .clear
...