colorWithAlphaComponent exemple en Swift
Quelle est la bonne syntaxe de cette fonction dans Swift?
Le suivant fonctionne très bien, et les couleurs d'arrière-plan pourpre:
self.view.backgroundColor = UIColor.purpleColor()
Quand j'ai de la chaîne de la colorWithAlphaComponent fonction, l'affichage montre le bon alpha, pour un moment, puis les transforme en un pourpre opaque qui est relativement sombre:
self.view.backgroundColor = UIColor.purpleColor().colorWithAlphaComponent(0.5)
Est-ce recommandé de fonction pour ajouter une valeur alpha à un UIColor?
En outre, pourquoi ne l'intellisense popup dire que cette fonction s'attend à un UIColor comme paramètre? E. g.,
self.view.backgroundColor = UIColor.colorWithAlphaComponent(<#UIColor#>)
EDIT: Le comportement est étrange. Je suis réglage de la couleur d'arrière-plan sur une vue contrôleur est chargé dans un modal. Comme le modal glisse vers le haut à partir du bas, l'alpha est correct. Lorsque le modal finit de se charger, le changement de couleur de fond opaque?!
EDIT 2: Le problème n'était pas avec le code (le code ci-dessus et la suggestion ci-dessous ont été correctement l'application de l'alpha. La question est de cette manière que les auxiliaires modaux sont présentés-la vision sous-jacente est en cours de suppression. Voir:
Transparent Modal Vue sur la manette de Navigation
- par curiosité, avez-vous essayé
UIColor(red: 0.5, green: 0, blue: 0.5, alpha: 0.5)
? - J'ai juste essayé; même comportement que lors de l'utilisation de
.colorWithAlphaComponent(0.5)
. Voir modifier. - étrange,
colorWithAlphaComponent
est une méthode d'instance et non de la méthode de classe. Si cela est défini en tant que méthode de classe alors que par la fonctionnalité, il devrait prendre une couleur et flotter comme des paramètres. - Je suis d'accord... étrange. Vous le voyez aussi, alors?
- stackoverflow.com/questions/24336187/...
Vous devez vous connecter pour publier un commentaire.
Il n'est pas étrange, c'est de se comporter exactement comme il se doit. Bien que beaucoup de UIColor méthodes sont des méthodes de classe, il y a encore quelques méthodes d'instance, et c'est l'un d'entre eux. De le UIColor documentation.
Donc, colorWithAlphaComponent: change juste la valeur alpha de son récepteur. Exemple:
Et la raison pourquoi vous voyez l'autocomplétion pour cette méthode d'instance sur le type, c'est parce que Swift vous permet d'utiliser les méthodes d'instance comme le curry de type de méthodes. Dans l'exemple que vous avez fourni,
colorWithAlphaComponent
renvoie en fait une fonction qui prend unCGFloat
en entrée et renvoie unUIColor
.Donc, si vous voulez, vous pouvez appeler la méthode de type de passage dans l'instance que vous souhaitez modifier, puis appeler la fonction obtenue avec l'alpha que vous souhaitez appliquer, comme si.
Puis dans la mesure où les problèmes que vous rencontrez avec le modèle-vue-contrôleur aller, vous ne devriez pas tenter de modifier l'alpha de la vue d'un modal-vue-contrôleur. Voir ce pour plus d'info. Au lieu de cela, vous devriez être la création manuelle d'un point de vue et de l'ajouter à la vue de la hiérarchie de votre vue-contrôleur (si vous devez absolument modifier son alpha)
The easiest way is to use modalPresentationStyle property of navigationController
Swift 4.0
dans Swift 3.0
Cela fonctionne pour moi dans xcode 8.2.
yourView.backgroundColor = UIColor.black.withAlphaComponent(0.5)
Il peut vous aide.
Essayer de qch comme ça pour couleur
Depuis
UIColor
fait partie de UIKit, il a été remplacé dans SwiftUI avecColor
. L'équivalent de la méthode est.opacity(_ opacity: Double)
par exemple: