2010-11-19 5 views
1

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

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

Опять же, я понимаю, что, как правило, это происходит вокруг, но в этом случае я имею дело с mapView, а мои подвидности - это аннотации и наложения.

Спасибо, Матф

ответ

1

Update

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

Вы можете попробовать установить «кликиSubviews» MKMApView на NO/FALSE и сбросить рамку до 0,0,0,0. Но это повлияет на вашу способность получать события Touch в свои подзаголовки.

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

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

Оригинальное

Установите переключатель BackgroundColor в [UIColor clearColor]

+0

Я предполагаю, что я должен быть более ясным - это конкретная ситуация имеет дело с MKMapView в качестве родительского вида. Не похоже, что вы можете просто установить цвет фона для очистки - ничего действительно не происходит :( – mag725

+0

Я вижу. Я обновлю свой ответ. – TomSwift