6
votes

Appliquer des coins arrondis pour toute la demande

Comment puis-je implémenter des coins arrondis appliqués à l'ensemble de la vue sur la capture d'écran (notez que la barre de navigation et les coins du clavier sont arrondis)?

J'ai essayé de régler cornerradius = 10 et maskstobounds = oui pour les deux window.layer et window.rootviewcontroller.view .layer , mais seuls les coins de vue du bas sont arrondis, la barre de navigation reste toujours place.

mise à jour. Réglage cornerradius à un window.layer ajoute des coins arrondis au sommet aussi, mais ces coins ne sont pas visibles sous la barre d'état, sauf si Cornerradius est plus grand que 20.

exemple


0 commentaires

4 Réponses :


0
votes

Je doute que la fenêtre ait arrondi des coins parce que je ne crois pas que la barre d'état ait une hauteur supérieure à 20 unités. Je soupçonne que la fenêtre est simplement définie avec un fond noir (ou quelle que soit la couleur nécessaire pour correspondre à la barre d'état, puis une autre vue est placée sur le dessus. Cette vue sur le dessus a les coins arrondis. De même, tout autre sous-assisté aura arrondi. coins pour aider avec cette illusion.


1 commentaires

Zone arrondie est derrière la barre d'état, donc si vous masquez la barre d'état, vous le verrez.



1
votes

Ils utilisent probablement une image d'arrière-plan dans la barre de navigation qui inclut les coins arrondis.


3 commentaires

Ouais, j'y ai pensé. Mais si l'arrière-plan NAVBAR contient des coins noirs, l'affichage d'une vue modale vous montrera se déplacer autour d'un écran de bas pendant l'animation :)


C'est vrai - avez-vous essayé un PNG avec un fond transparent?


Je n'ai pas essayé de la barre de navigation transparente par moi-même (j'ai décidé d'aller sans coins arrondis), mais Andrew Stone (Twittelator Neue) m'a dit qu'il l'a fait aussi (en plus de la superposition avec des coins sur tout, voir ma réponse pour des détails). Merci de votre aide!



17
votes

OK, j'ai demandé à Andrew Stone, un développeur de Twittelator Neue , sur Twitter, et voici sa recette, publiée avec l'autorisation d'Andrew:

Nous allons écrire un livre sur des tours de codage à Neue! Nous superposons une fenêtre avec une image contenant 4 coins sur tout

Nous avons également une barre de navigation personnalisée avec une image extensible avec des tops arrondis

Voici comment je l'ai fait dans mon propre projet: xxx

superpose.png est une image complète transparente avec noir coins.


3 commentaires

Lorsque vous faites cela, n'oubliez pas d'ajouter #imports à votre classe et d'ajouter le cadre quartzcore à votre projet.


J'ai trouvé ceci sur l'application: arrondicornerbl.png arrountedcornerbl@2x.png rosedcornerbr.png rondedcornerbr@2x.png arrondedcornertl@2x.png arrondedCornertr@2x.png


Quelqu'un peut-il partager la ou les images superposées?



1
votes

La réponse de Ihunter fonctionne très bien pour moi, sauf lorsque j'essaie d'utiliser le TwtweetCompossieviewController code>, qui montre le clavier mais pas la vue Tweet. Ensuite, je devrais faire la superposition en tant que propriété dans le appdelegate.h code> et avant Tweetview code>, supprimez la superposition. Sur Tweet terminé, tournez à nouveau sur Superposition.

AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate.overlay removeFromSuperlayer];
TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc] init];
tweetSheet.completionHandler = ^(TWTweetComposeViewControllerResult result) {
    AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
    [delegate.window.layer addSublayer:delegate.overlay];
};
[self presentModalViewController:tweetSheet animated:YES];


0 commentaires