Comment puis-je mettre un bouton couleur d'arrière-plan sur l'iPhone?
Comment puis-je personnaliser la couleur de fond d'un bouton?
Interface Builder ne semble pas avoir une interface pour ce faire.
Est-il disponible uniquement par programmation?
Si oui, pouvez-vous donner un exemple, s'il vous plaît?
Vous devez vous connecter pour publier un commentaire.
J'ai lu votre question à besoin (comme moi) un programmatique façon de bouton de réglage de la couleur. C'est une lacune évidente de la UIKit, et je ne pouvais pas obtenir les sans-papiers UIGlassButton de travail.
J'ai résolu ceci avec un seul segment
UISegmentedControl
, qui vous permet de définir letintColor
:Veuillez noter que le
momentary
etsegmentedControlStyle
, les propriétés de la matière, et qu'une image peut être utilisée à la place d'unNSString *
nom.Un extensible image avec embouts fonctionne très bien si vous pouvez utiliser un ensemble fini d'en conserve les images, mais qui ne répond pas à l'exigence! E. g.,
J'ai trouvé que j'avais besoin d'utiliser un extensible image pour accomplir cette tâche. Apple UICatalog exemple a un ou plusieurs boutons de couleur qui sont dessinés dans ce mode. Vous pouvez utiliser le gabarit de l'image et changer la couleur en fonction de votre bouton besoins.
Je ne suis pas sûr à ce sujet dans Interface Builder, mais j'ai été capable de créer un bouton et utiliser une image pour son contenu en utilisant le code suivant:
Réglage de la couleur d'arrière-plan de la vue pour une forme arrondie-rect bouton ne va pas changer la couleur de fond du bouton. Essayez de faire la touche, un bouton personnalisé (la première liste déroulante dans l'inspecteur), puis définir la couleur d'arrière-plan. Vous allez obtenir l'effet désiré 🙂
button.layer.cornerRadius
pour obtenir un bouton rond (et vous devez activerbutton.layer.masksToBounds
ainsi autant que je sache). Cela a été la solution la plus simple pour moi.Il semble, que la couleur du bouton est toujours un problème. La catégorie jeux d'un bouton backgroundimage complètement par programmation via une méthode d'instance qui prend un UIColor paramètre. Il n'est pas nécessaire de créer un bouton backgroundimage fichiers. Il préserve le comportement de la touche basé sur UIControlState. Et il garde les coins arrondis.
Le fichier d'en-tête UIButton+ColoredBackground.h
et le contenu de UIButton+ColoredBackground.m
La nouvelle méthode est justed appelée sur chaque UIButton exemple comme:
http://github.com/dermdaly/ButtonMaker
Vous pouvez générer UIbutton image à l'aide de cette application...et peut le définir comme image d'arrière-plan de votre bouton
Définir votre type de bouton "custom" dans le bouton attributs de la palette. Cela vous donnera un bouton carré avec quelle que soit la couleur que vous avez choisi pour le fond.
Si vous voulez un bouton qui ressemble plus à un bouton traditionnel, mais a une couleur différente vous allez avoir besoin d'aller dans une sorte de logiciel de retouche d'image et de le créer (j'utilise photoshop pour les boutons personnalisés).
Ce lien fournit une solution élégante à votre problème ...
http://www.cimgf.com/2010/01/28/fun-with-uibuttons-and-core-animation-layers/
Pour maintenir le bouton arrondi, que penser de l'utilisation
décrit ici
Comment puis-je créer un rond acculé UILabel sur l'iPhone?
j'ai un peu modifié le code de la version de @Patch. Le problème pour moi est que l'ancienne version étendue du rayon d'angle genre de sale lors de la commutation du mode portrait au mode paysage. J'ai donc fait cette version utiliser stretchableImageWithLeftCapWidth:topCapHeight Méthode.
L'utilisation n'a pas changé. Il semble aujourd'hui plus clair sur les bords, et j'ai aussi aded un gradient de rendre plus plastique. mais vous pouvez le supprimer en tant que bien.
J'ai résolu ce problème en créant mon propre bouton des feux d'Artifice. J'ai dessiné un rectangle arrondi d'environ la taille que je voulais, avec la couleur de remplissage et couleur de la bordure que je voulais. Découper la toile, et de les enregistrer au format PNG. Dans XCode, ajouter le fichier dans le dossier de Ressources. Vous pouvez utiliser un bouton Personnalisé dans Interface Builder et spécifier l'image comme PNG. Il va la redimensionner si nécessaire, placez le texte sur le dessus, etc. La courbe des coins peut fausser si vous devez redimensionner beaucoup de l'original.
Tim James solution (un seul segment sectorielle de contrôle) a travaillé pour moi quand j'ai voulu un simple bouton 'Enregistrer' avec un décent bleu dégradé d'arrière-plan. J'ai tout simplement créé un 2 segment de contrôle dans la plume, mis en place le premier segment comme je le voulais et ensuite par programmation supprimé le deuxième segment sous -viewWillAppear à l'aide de [mySegmentedControl removeSegmentAtIndex:1 animation:NON].
Pour mes fins 'Momentané" nécessaire pour être activé (coché) pour la segmentation de Contrôle du premier segment de la plume et de "Sélectionnées" n'a pas été actif pour l'un des segments. 'Valeur a Changé" est la segmentation du Contrôle de l'Action de connecter jusqu'.
Ici est une application gratuite que j'ai créé qui crée UIGlassButton images. Définir le type de bouton personnalisé. http://itunes.apple.com/us/app/uibutton-builder/id408204223?mt=8
je l'ai fait comme suit pour créer le bouton en forme de système de bouton supprimer comme dans uitableview
la libération de tous les objets et
importation QuartzCore/QuartzCore.h et
ajouter cette cadre de votre projet.
Voici une variation sur @user200212 la solution de (http://stackoverflow.com/a/8547424). Il utilise le
UIBezierCurve
classe pour remplir le bouton et tirer un 1px bordure noire autour d'elle:UIButton+ColoredBackground.h
UIButton+ColoredBackground.m
Utilisation:
keremk a raison quand il dit de changer l'affichage couleur d'arrière-plan lorsque vous avez cliqué sur le bouton et passé dans l'inspecteur. Cela modifie les petits coins dans quelle que soit la couleur que vous avez sélectionnée.
Si vous n'êtes pas désireux d'utiliser les images, et vous voulez qu'il ressemble exactement au Arrondie Rect style, essayez ceci. Il suffit de placer une UIView sur le UIButton, avec une monture identique et redimensionnement automatique de masque, de définir l'alpha à 0,3, et de définir l'arrière-plan une couleur. Ensuite, utilisez l'extrait de code ci-dessous pour découper les bords arrondis au large de la couleur de superposition de vue. Aussi, décochez la case " Interaction de l'Utilisateur Activé la case de l'IB sur le UIView pour permettre de toucher les événements en cascade vers le bas de la UIButton dessous.
Un effet secondaire est que votre texte sera aussi colorisée.
De renforcer @Denny1989 j'ai résolu un problème de faire des erreurs (contexte non valide 0x0) lors de la configuration du bouton dans le viewDidLoad. Le bouton doit être aménagé avant qu'il ait une taille et ne peut donc pas compter sur lui jusqu'à ce que après le point de vue s'affiche. Cette catégorie ajoute une couleur pour UIControlStateNormal. Si d'autres membres sont nécessaires à votre application que vous devez ajouter de la même façon à la catégorie.
et
utilisation
Être sûr de faire le type de bouton personnalisé ou drawRect ne peut pas être appelé.
Donc, j'ai trouvé incroyablement solution simple à l'aide de catégories.
(Si simple que je pense que je dois être en train de faire quelque chose de hacky, mais je ne la vois pas!)
Définir une catégorie (si vous ne savez pas ce que c'est, en résumé: c'est un moyen de "sortir" d'une classe minimale; c'est, d'ajouter des méthodes à une classe, mais pas de propriétés) pour UIButton, et de créer une méthode "setBackgroundColor" qui appelle UIButton est super classe (UIControl) setBackgroundColor méthode.
Partout où vous utilisez UIButtons, aussi longtemps que vous importez le fichier d'en-tête dans lequel cette catégorie est déclaré, dans ce cas,
vous pouvez appeler setBackgroundColor sur eux.
Peut-être j'ai mal compris votre question, mais ci-dessous ne fonctionne pas pour vous?