2017-07-29 1 views
1

je définir la couleur d'arrière-plan d'une vue à l'aide de la commande suivanteComment obtenir la couleur d'arrière-plan ou l'image d'une vue en arrière-plan est défini à l'aide UIColor (patternImage: UIImage (nom: « myimage.jpg »)) dans rapide

self.view.backgroundColor = UIColor(patternImage: UIImage(named:"myimage.jpg")) 

Je souhaite récupérer le nom d'image "myimage.jpg". Pour cela, je l'ai essayé d'obtenir l'image de motif à l'aide de la commande suivante

self.view.backgroundColor?.cgColor.pattern 

il revient

Optional(<CGPattern 0x600000364e00>) 

J'ai regardé Detecting if UIColor was created with colorWithPatternImage

mais il est peu utile

+0

Vous souhaitez récupérer le nom de l'image à partir de la couleur d'arrière-plan? –

+0

@PuneetSharma oui –

+0

@PuneetSharma S'il vous plaît voir ma question mise à jour –

Répondre

1

Je ne pense pas qu'il est possible d'obtenir le nom de l'image.

Pour créer une couleur, Quartz 2D utilise l'objet CGPattern comme peinture pour dessiner dans le contexte graphique.

CGPattern est une image tout droit mais un objet séparé.

Si vous voulez retreive le nom de l'image qui a créé l'objet UIColor, je vous conseille d'utiliser un hashmap (NSDictionary) comme UIColor objet comme clé et son modèle nom de l'image en tant que valeur. Le seul problème est maintenant que UIColor n'est pas conforme au protocole NSCopying et ne peut donc pas être utilisé immédiatement comme une clé à l'intérieur NSDictionary mais cela peut être résolu en utilisant un autre objet et en respectant le protocole NSCopying.

+0

Peut-être que vous avez raison. S'il vous plaît laissez-moi attendre plus de réponses. –