10
votes

Comment faire taire le contenu d'une calayeuse?

J'aimerais faire appel à une cgimage à travers une calayeuse, mais il semble que je veux seulement l'étirer.

Le code exemple: xxx

Je voudrais Évitez la sous-classement si je pouvais.


0 commentaires

4 Réponses :


13
votes

Vous pouvez créer une couleur avec une image de motif et définir cela comme couleur d'arrière-plan de la couche.

Pour ce que vous avez besoin d'envelopper votre CGIMAGE dans un CGPattern et faire un CGColor de celui-ci. xxx

Ce code est modifié à partir du code d'échantillon GeekGameboard.


5 commentaires

Je viens de remarquer + colorwithpatternimage à Uicolor, est-ce que cette chose est similaire?


Oui, cela devrait faire la même chose, même si je ne l'ai pas testé. Uicolor n'a pas toujours été disponible dans iPhone OS, donc je suis utilisé pour utiliser les méthodes CGColor .


Je ne suis pas tout à fait sûr, mais il me semble que l'utilisation d'images telles que BackgroundColor enfreint la capacité de l'animer. (J'ai posté une question sur ce ici .)


Merci pour l'aide. J'ai commis une erreur en prenant l'espace des couleurs de l'image et en l'utilisant pour le CGColorcreatewithPattern appel. Cela ne dessine rien dans ce cas.


Salut! Merci pour cette solution. L'image est correctement dessinée et elle n'est pas à l'envers, mais elle semble être tirée du bas, car lorsque je redimensionnement la fenêtre, le fond est fixé, tandis que le haut se déplace. Savez-vous comment puis-je avoir le contraire à travailler?



0
votes

Vous pouvez utiliser la méthode CGContextDrawtilleDimage pour cette


0 commentaires

3
votes

C'est plutôt plus simple. Mais méfiez-vous, il s'agit d'une API privée, utilisez à vos risques et périls.

Configuration comme suit xxx

alors faites ce xxx


1 commentaires

Comme @sdsykes mentionné, il s'agit d'une API privée et doit être utilisée attentivement (le tout). Si vous vous demandez quelles sont les valeurs possibles, les seules que je pouvais trouver étaient des kcacontentsSscalingstretch et kcacontentsSscalingRepeat. Un peu de triviale :)



10
votes

Le code le plus simple pour accomplir est:

CALayer *layer = [CALayer layer];
layer.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background_tile"]].CGColor;


2 commentaires

Ah, à droite. Je suis jolie iOS-Centric. Merci d'avoir fait remarquer cela.


ColorWithpatternImage: semble être disponible dans iOS, voir Docs