Comment fonctionne la prise en charge vectorielle dans Xcode 6?
Quand j'essaye de redimensionner une image, elle a l'air irrégulière, qu'est-ce que ça donne?
la source
Comment fonctionne la prise en charge vectorielle dans Xcode 6?
Quand j'essaye de redimensionner une image, elle a l'air irrégulière, qu'est-ce que ça donne?
Vous pouvez maintenant faire référence à votre image par son nom, comme vous le feriez pour n'importe quel fichier .png .
UIImage(named: "myImage")
La prise en charge des vecteurs est déroutante dans Xcode, car lorsque la plupart des gens pensent aux vecteurs, ils pensent à des images qui peuvent augmenter et diminuer tout en ayant une belle apparence. Cependant, Xcode 6 et 7 ne prennent pas entièrement en charge les vecteurs pour iOS, donc les choses fonctionnent un peu différemment.
Le système vectoriel est vraiment simple . Il prend votre .pdf
image et crée @1x.png
, @2x.png
et @3x.png
actifs au moment de la construction . (Vous pouvez utiliser un outil pour examiner le contenu de Assets.car pour vérifier cela.)
Par exemple, supposons que l'on vous donne foo.pdf
un élément vectoriel 44x44. Au moment de la construction, il générera les fichiers suivants:
[email protected]
à 44x44[email protected]
à 88x88[email protected]
à 132x132Cela fonctionne de la même manière pour n'importe quelle image de taille. Par exemple, si vous avez une valeur de bar.pdf
100x100, vous obtiendrez:
[email protected]
à 100x100[email protected]
à 200x200[email protected]
à 300x300
resizableImageWithCapInsets:
et en divisant vos valeurs de tranche par[UIScreen mainScreen].scale
CGFloat scale = [UIScreen mainScreen].scale; UIImage *image = [[UIImage imageNamed:@"my_unsliced_asset"] resizableImageWithCapInsets:UIEdgeInsetsMake(10 * scale, 11 * scale, 12 * scale, 13 * scale)];
Dans Xcode 8, vous pouvez toujours ajouter un pdf, créer un nouvel ensemble d'images et, dans l'inspecteur d'attributs, définir l'option Échelles à échelle unique.
la source
Ceci est un complément à l'excellente réponse de @Senseful.
Comment créer des images vectorielles au format .pdf
Je vais vous dire comment faire cela dans Inkscape car il est gratuit et open source, mais les autres programmes devraient être similaires.
Dans Inkscape:
Remarques:
Si vous disposez déjà d'une image .svg dont la taille de page est incorrecte, procédez comme suit:
Pour convertir un fichier .svg en .pdf, vous pouvez également trouver des utilitaires en ligne pour faire le travail à votre place. Voici un exemple de cette réponse . Cela a l'avantage de vous permettre de définir facilement la taille .pdf.
Lectures complémentaires
la source
Pour ceux qui ne sont toujours pas mis à jour, il y a eu des changements dans Xcode 9 (iOS 11).
Quoi de neuf dans Cocoa Touch (WWDC 2017 Session 201) (@ 32: 55) https://developer.apple.com/videos/play/wwdc2017/201/
En quelques mots, le catalogue d'actifs inclut désormais la nouvelle case à cocher dans l'inspecteur d'attributs nommée «Préserver les données vectorielles». Lorsqu'elle est cochée, les données PDF seront incluses dans le binaire compilé, augmentant bien sûr sa taille. Mais cela donne une chance à iOS de mettre à l'échelle les données vectorielles dans les deux sens et de fournir de belles images (avec ses propres difficultés). Pour iOS inférieur à 11, les anciens mécanismes de mise à l'échelle décrits dans les réponses à la hausse sont utilisés.
la source
Vous pouvez utiliser des fichiers PDF normaux dans votre projet sous forme d'images vectorielles et rendre des images de n'importe quelle taille à l'aide de cette extension. Cette méthode est bien meilleure car iOS ne générera pas d'images .PNG à partir de vos fichiers PDF, et vous pouvez rendre vos images avec la taille de votre choix:
la source