2010-11-19 46 views
1

En général, je sais qu'il existe des solutions de contournement, mais existe-t-il un moyen simple dans le SDK iOS de masquer un aperçu sans masquer ses sous-vues?Masquage d'un aperçu sans masquer ses sous-vues

J'ai une vue parent qui est un arrière-plan pour quelques autres vues. Je voudrais cacher le parent, soit en mettant sa transparence à 0, soit en plaçant "caché" ou quelque chose - le problème est que ces changements affectent toutes les sous-vues du parent. Encore une fois, je me rends compte qu'il y a habituellement un moyen de contourner cela, mais dans ce cas, j'ai affaire à un mapView, et mes sous-vues sont des annotations et des superpositions.

Merci, -Matt

Répondre

1

Mise à jour

Oui, un MKMapView aura plusieurs couches avec le rendu, la mise si backgroundColor ne fonctionnera pas. Vous pouvez essayer de sous-classer MKMapView pour ajouter une propriété pour activer/désactiver ces couches (en les supprimant/en les ajoutant à la vue). Mais cela semble plutôt dangereux.

Vous pouvez essayer de régler les "clipsSubviews" de MKMApView sur NO/FALSE et réinitialiser le cadre à 0,0,0,0. Mais cela aura un impact sur votre capacité à obtenir des événements tactiles à vos sous-vues.

Il est probablement préférable de réévaluer la hiérarchie de vos vues. Faire quelque chose comme:

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

originale

Réglez le backgroundColor à [UIColor clearColor]

+0

Je suppose que je devrais être plus clair - cette situation spécifique fait face à MKMapView que la vue parent. Il ne semble pas que vous pouvez simplement définir la couleur de fond pour effacer - rien ne se passe vraiment :( – mag725

+0

Je vois. Je vais mettre à jour ma réponse. – TomSwift