2010-11-29 3 views
2

J'ai une vue 200 x 150 px que je voudrais présenter sur le robinet d'un bouton. Si j'utilise addSubview: alors la vue apparaît dans la bonne position, mais je peux toujours appuyer sur les autres boutons de la vue d'ensemble, ce qui est le comportement que je ne veux pas.Présent UIView modally qui ne fonctionne pas en plein écran

Si j'utilise presentModalViewController alors la vue occupe tout l'écran, ce qui est ce que je ne veux pas non plus ... cela arrive même si je mets wantsFullScreenLayout à NO.

Comment puis-je présenter la vue afin que l'utilisateur puisse uniquement interagir avec les contrôles de la vue présentée?

Merci

Répondre

2

Faire le point de vue de la taille de l'écran (en prenant la barre d'état en compte). Cette vue devrait avoir une couleur de fond translucide (ou claire). Avoir la vue 200x150 être sur le fond de cette vue pour avoir l'apparence d'un UIActionSheet, où l'arrière-plan s'assombrit et l'utilisateur ne peut pas interagir avec d'autres éléments sur l'écran.

Ensuite, vous pouvez utiliser presentModalViewController pour présenter la vue.

Addition

Dans le fichier .m du contrôleur de vue, définir awakeFromNib:

-(void)awakeFromNib 
{ 
    self.view.backgroundColor = [UIColor clearColor]; 
} 
+0

Ive définir la couleur de fond de vues clearColor, mais il apparaît comme blanc. Opaque est NON. Comment puis-je l'obtenir pour être transparent? Merci – joec

+0

Assurez-vous de définir la couleur d'arrière-plan de la vue du contrôleur de vue. –

+0

C'est ce que j'ai mis à clearColor – joec