53 votes

Comment créer un gros bouton rouge avec iOS ?

Sous iOS, comment puis-je créer un bouton rouge de suppression similaire à celui utilisé pour supprimer les contacts sur l'iPhone ?

0 votes

Cette question est très proche du vôtre, et contient deux façons de générer un tel bouton coloré.

0 votes

J'ai fait cela récemment aussi, et j'ai créé ce bouton pour cela ( et quelques exemples de code Monotouch pour tout monotouche) : ! texte alternatif Il a moins de biseau, ce qui est mieux sur n'importe quel fond, mais ne correspond pas à l'iPhone. UIGlassButton exactement.

0 votes

J'ai ajouté à mon site des images de boutons disponibles gratuitement sous la licence MIT, qui correspondent mieux aux boutons en verre d'iOS. (mais ce forum ne me permet pas de poster des images parce que je suis nouveau) Pour les télécharger et pour un exemple de code, voir : erreursgénétiques.com/articles/1000/

84voto

coneybeare Points 23802

Vous commencez par une image extensible :

texte alternatif http://grab.by/4lP

Ensuite, vous créez un bouton avec l'image étirée comme arrière-plan et appliquez du texte.

UIButton *sampleButton = [UIButton buttonWithType:UIButtonTypeCustom];
[sampleButton setFrame:CGRectMake(kLeftMargin, 10, self.view.bounds.size.width - kLeftMargin - kRightMargin, 52)];
[sampleButton setTitle:@"Button Title" forState:UIControlStateNormal];
[sampleButton setFont:[UIFont boldSystemFontOfSize:20]];
[sampleButton setBackgroundImage:[[UIImage imageNamed:@"redButton.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal];
[sampleButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:sampleButton];

Bien entendu, vous devrez ajuster l'origine et la taille du cadre en fonction de votre application, ainsi que la cible, le sélecteur et le titre.

0 votes

Bonne solution. Une seule correction : vous avez oublié le signe @ pour la chaîne de caractères dans -[UIImage imageNamed :].

0 votes

Note : La réponse à la question d'Anthony a été donnée ici : stackoverflow.com/questions/2276099/a-big-green-uiimage-anyone/

0 votes

Excellent article - merci pour l'image gratuite, je vais l'utiliser :)

62voto

Staeff Points 1157

J'ai également créé des boutons... en version rétine et non-rétine.

Si vous voulez les utiliser dans une cellule, il suffit d'utiliser le code suivant dans cellForRowAtIndexPath :

UIButton *sampleButton = [UIButton buttonWithType:UIButtonTypeCustom];
[sampleButton setFrame:[cell.contentView frame]];
[sampleButton setFrame:CGRectMake(0, 0, cell.bounds.size.width-20, 44)];
[sampleButton setBackgroundImage:[UIImage imageNamed:@"button_red.png"] forState:UIControlStateNormal];
[cell addSubview:sampleButton];

Green Button Normal

Red Button Normal

Grey Button Normal

Green Button RetinaRed Button RetinaGrey Button Retina

1 votes

En avez-vous qui ont un fond transparent ? Lorsque je les place dans une vue avec un fond non blanc, ça a l'air bizarre... vous voyez ce que je veux dire ?

2 votes

@Hisoka : sampleButton.alpha = 0.5 ;

0 votes

Très bien. Ces images sont-elles tirées de l'interface graphique de l'iPhone ?

22voto

yonel Points 6648

Je pense que ceux-là sont meilleurs (et ils ont l'air bien sur l'affichage retina aussi) :

alt textalt text

.png généré à partir de ce très beau fichier .psd : http://www.teehanlax.com/blog/2010/08/12/iphone-4-gui-psd-retina-display/

Et ensuite, utilisez-la comme une image étirable pour l'arrière-plan de votre site Web. UIButton :

UIImage* greenButton = [UIImage imageNamed:@"UIButton_green.png"]; 
UIImage *newImage = [greenButton stretchableImageWithLeftCapWidth:greenButton.size.width/2 topCapHeight:greenButton.size.height/2];
[callButton setBackgroundImage:newImage forState:UIControlStateNormal];

0 votes

Notez que leur utilisation dans une application constitue une violation de la licence de l'auteur original.

1 votes

Veuillez noter que le lien a maintenant expiré et que vous obtenez un "page not found", évidemment ce n'est pas votre faute mais je pensais que vous pourriez peut-être mettre à jour le lien avec un nouveau si vous en avez un.

7voto

RicMoo Points 71

J'ai ajouté à mon site des images de boutons disponibles gratuitement sous la licence MIT, qui correspondent mieux aux boutons en verre d'iOS. (mais ce forum ne me permet pas de poster des images car je suis nouveau)

Pour les télécharger et pour un exemple de code, voir :

http://www.geneticmistakes.com/articles/1000/stretchable-dynamic-images-for-buttons

5voto

Chris S Points 32376

J'ai fait cela récemment aussi, et j'ai créé ce bouton pour cela ( et quelques exemples de code Monotouch pour tout monotouche) :

alt text

Il a moins de biseau, ce qui est mieux sur n'importe quel fond, mais ne correspond pas à l'iPhone. UIGlassButton exactement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X