Une boîte à outils simple pour afficher et manipuler les SVG sur iOS et MacOS d'une manière performante.
L'objectif de ce projet n'est pas d'être un analyseur / rendu SVG entièrement conforme. Mais plutôt pour utiliser SVG comme format pour sérialiser CG / UIPATH, ce qui signifie qu'il ne prend en charge que les fonctionnalités SVG qui peuvent être représentées par CG / UIPATH.
Bien documenté.
path , line , polyline , polygon , rect , circle , ellipseUIImageView / NSImageView ou CALayer .CGPath pour une manipulation plus fine. dependencies: [
. package ( url : " https://github.com/pocketsvg/PocketSVG.git " , . upToNextMajor ( from : " 2.6.0 " ) )
]Ajoutez ceci à votre podfile:
pod 'PocketSVG' , '~> 2.6' Puis exécutez pod install
Ajoutez ceci à votre carton:
github "pocketsvg/PocketSVG" >= 2.7.2
Ensuite, exécutez carthage update --use-xcframeworks
SVGImageView let url = Bundle . main . url ( forResource : " tiger " , withExtension : " svg " ) !
let svgImageView = SVGImageView . init ( contentsOf : url )
svgImageView . frame = view . bounds
svgImageView . contentMode = . scaleAspectFit
view . addSubview ( svgImageView ) Sortir 
Remarque: Par défaut, SVGLayer shouldRasterize mis au dépassement sur YES lors de l'exécution sur iOS. Si vous avez besoin d'animer les modifications de la transformation du calque, vous voudrez peut-être réinitialiser cela à NO .
CAShapeLayer chaque chemin view . backgroundColor = . white
let svgURL = Bundle . main . url ( forResource : " tiger " , withExtension : " svg " ) !
let paths = SVGBezierPath . pathsFromSVG ( at : svgURL )
let tigerLayer = CALayer ( )
for (index , path ) in paths . enumerated ( ) {
let shapeLayer = CAShapeLayer ( )
shapeLayer . path = path . cgPath
if index % 2 == 0 {
shapeLayer . fillColor = UIColor . black . cgColor
}
else if index % 3 == 0 {
shapeLayer . fillColor = UIColor . darkGray . cgColor
}
else {
shapeLayer . fillColor = UIColor . gray . cgColor
}
tigerLayer . addSublayer ( shapeLayer )
}
var transform = CATransform3DMakeScale ( 0.4 , 0.4 , 1.0 )
transform = CATransform3DTranslate ( transform , 200 , 400 , 0 )
tigerLayer . transform = transform
view . layer . addSublayer ( tigerLayer ) Sortir 
Veuillez utiliser le suivi du problème pour signaler tout bogue ou demande de fonctions de fichier.
Les PR sont les bienvenus.