PocketSVG
2.7.3
iOS 및 MACOS에 SVG를 표시 및 조작하기위한 간단한 툴킷.
이 프로젝트의 목표는 완전히 준수하는 SVG 파서/렌더러가되어서는 안됩니다. 오히려 SVG를 CG/UIPATHS를 직렬화하기위한 형식으로 사용하는 것은 CG/UIPATHS로 표현할 수있는 SVG 기능 만 지원합니다.
철저히 문서화.
path , line , polyline 라인, polygon , rect , circle , ellipseUIImageView / NSImageView 또는 CALayer 서브 클래스로서 일반적인 SVG 렌더링에 대한 간단한 API.CGPath 로 SVG 내의 모든 모양에 액세스하십시오. dependencies: [
. package ( url : " https://github.com/pocketsvg/PocketSVG.git " , . upToNextMajor ( from : " 2.6.0 " ) )
]포드 파일에 이것을 추가하십시오.
pod 'PocketSVG' , '~> 2.6' 그런 다음 pod install 실행하십시오
이것을 Cartfile에 추가하십시오.
github "pocketsvg/PocketSVG" >= 2.7.2
그런 다음 carthage update --use-xcframeworks 실행하십시오
SVGImageView 사용하여 svg 파일을 렌더링하십시오 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 ) 산출 
참고 : 기본적으로 SVGLAYER는 iOS에서 실행할 때 shouldRasterize YES 로 설정해야합니다. 레이어 변환의 변화를 애니메이션 해야하는 경우이를 NO 재설정 할 수 있습니다.
CAShapeLayer 사용하여 SVG 파일의 각 경로 렌더링 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 ) 산출 
문제 추적기를 사용하여 버그 또는 파일 기능 요청을보고하십시오.
PR을 환영합니다.