Comment ajouter une bordure SUPÉRIEURE sur un UIButton?
Je sais comment faire pour ajouter une bordure à un bouton dans iOS 7, avec le code suivant :
[[myButton layer] setBorderColor:[[[UIColor grayColor] colorWithAlphaComponent:0.5] CGColor]];
[[myButton layer] setBorderWidth:1];
[[myButton layer] setCornerRadius:15];
Mais comment puis-je ajouter de la frontière ? Je tiens à ajouter que la bordure supérieure.
Vous devez vous connecter pour publier un commentaire.
vous pouvez faire de même pour chaque frontière. Ajout de plusieurs UIViews vous pouvez ajouter en bas et à gauche ou en haut et en droit ou de tout bord.
c'est à dire en bas & à gauche:
si vous n'utilisez pas l'ARC, n'oubliez pas de laisser UIViews après l'ajout des sous-vues (ou utilisez autorelease).
Ici est masgar de la solution mise en œuvre dans Swift:
Dans Swift ajouter une extension pour UIView classe comme ceci:
Swift 3 *
J'ai obtenu cette extension à partir de ce lien:UIView de bordure en bas?
Puis appeler la fonction comme ceci
Pour une mise en page adaptative utiliser
Swift 3
Utilisation:
Swift 4
UIButton De La Bordure Supérieure
UIButton De La Bordure Inférieure
Il suffit de dessiner la frontière de vous-même:
En fait je répondre à cette question que toi,mais je pense que ma méthode est meilleure que la réponse que vous choisissez.
Vous devez créer une classe hérite de la UIControl comme UIButton.
et de réécrire la méthode drawrect comme ceci:
}
Par la voie~ votre but UIControl devez utiliser votre classe dans xib de réglage de l'
Dernier~ vous montrer mes personnalisé UIButton. Je pense que nous devrions choisir cette méthode et de combiner UIBezierPath de l'API pour terminer notre demande.
Merci pour regarder~ l'espoir d'étudier et de débattre ensemble~
À partir d'un iOS pêcheur -- vvlong
Vous ne pouvez pas utiliser cette couche de méthodes.
La meilleure solution ici est de créer une petite image (par code ou photoshop), utilisez l'option -
(UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
pour la redimensionner selon l'aspect que vous souhaitez donner et ajoutez une image de fond. C'est vraiment une bonne approche, car il vous aide à garder une très faible empreinte mémoire et qui s'adapte à votre image pour toutes la taille des boutons.Voici un bon tutoriel.
Si vous utilisez des contraintes, alors vous pouvez ajouter une bordure de vue avec les contraintes
Puis le mettre quelque chose comme ci-dessous
(inspiré par cette réponse)
Vous devez créer un nouveau calque ou de la vue 1pt haut, de définir la couleur d'arrière-plan de la couleur que vous voulez que votre frontière, et l'ajouter en tant que sous-vue/de la sous-couche.
Si vous avez besoin de rien d'autre que la valeur par défaut, vous devez manuellement le dessiner.
Mieux et de façon simple....
Ont fait à l'aide de : ce code source ouvert