Question

J'essaie de créer un contrôleur de sélecteur avec un bouton "Terminé" placé juste au-dessus de celui-ci, afin d'afficher un formulaire figurant dans une autre vue.

J'ai créé une sous-classe de UIViewController et, avec IB, j'ai ajouté une barre d'outils et une vue Sélecteur. Cela semble bien et en copiant les exemples dans UICatalog, je peux le faire afficher les valeurs requises et écouter les sélections, etc.

texte alt http://web.me.com/gareth.davis /so/settlement_picker_ui.png

Dans ce qui précède, j'ai défini la couleur d'arrière-plan de la vue sur alpha 0.0. J'ai également essayé de définir l'alpha de la vue à 0.0, ce qui affiche une vue complètement transparente.

texte alternatif http://web.me.com/gareth.davis /so/picker_running_in_app.png

Ci-dessus, le contrôleur de vue affiché au-dessus de mon formulaire à l'aide de:

    [self presentModalViewController:settlementPickerViewController                         
                        animated:YES];

En plus d'essayer de définir diverses propriétés alpha de ma vue, j'ai également essayé de modifier la hauteur de la vue afin de ne pas nécessiter de section transparente. Le problème est que la vue est ensuite positionnée à mi-hauteur de la vue. écran.

Était-ce utile?

La solution

La solution semble être de ne pas utiliser UIViewController à la place, un simple UIView personnalisé fait bien son travail.

J'ai utilisé la configuration des couleurs de Haentz dans la méthode awakeFromNib:

- (void)awakeFromNib {
    picker.delegate = self;
    self.backgroundColor = [UIColor clearColor];    
}

Notez que vous devez implémenter ceci et ne pas utiliser la méthode initWithFrame que le modèle de code x vous donne comme vues contrôlées par nib n'utilisez pas initWithFrame (à partir de la documentation Apple).

Autres conseils

Je ne comprends probablement pas, mais je ne comprends pas vraiment quel est le problème. Dans la capture d'écran inférieure, les éléments de l'interface utilisateur doivent-ils être transparents, sans la zone blanche au-dessus? Vous devez définir le cadre de UIView dans votre UIViewController correctement et je suppose que vous devrez peut-être définir la couleur de fond transparente:

self.view.backgroundColor = [UIColor clearColor];

Je ne suis pas sûr, car je n'utilise jamais l'IB, mais il est peut-être possible de définir la valeur Alpha de la couleur d'arrière-plan de la vue de base sur 0. Pas l'alpha de la vue elle-même, mais celui de la couleur d'arrière-plan .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top