UNPKG

react-native-arkit

Version:
89 lines (53 loc) 2.63 kB
# PocketSVG [![CocoaPods](https://img.shields.io/cocoapods/p/PocketSVG.svg?maxAge=3601)](#) [![Build Status](https://travis-ci.org/pocketsvg/PocketSVG.svg?branch=master)](https://travis-ci.org/pocketsvg/PocketSVG) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Code Coverage](https://img.shields.io/cocoapods/metrics/doc-percent/PocketSVG.svg)](http://cocoadocs.org/docsets/PocketSVG) A simple toolkit for displaying and manipulating SVGs on iOS and macOS in a performant manner. The goal of this project is not to be a fully compliant SVG parser/renderer. But rather to use SVG as a format for serializing CG/UIPaths, meaning it only supports SVG features that can be represented by CG/UIPaths. Thoroughly documented. ## Features * Render SVG files via SVGImageView/Layer * Display all kinds of SVGs shapes and paths. * Fully working iOS and macOS demos. * Straightforward API for typical SVG rendering (`SVGLayer` and `SVGImageView`) * Supports more fine-grained SVG manipulation (`SVGBezierPath` and `SVGEngine`) ## Installation ### Cocoapods Add `pod PocketSVG` to your Podfile. ### Carthage Add this to your Cartfile: ``` github "pocketsvg/PocketSVG" ``` Then run `carthage update`. ### Manual Drag and drop `PocketSVG.xcodeproj` into your Xcode project. In your project settings, add PocketSVG.framework in **Link Binary With Libraries**. ## Usage Render an SVG file using SVGImageView: ```swift let url = Bundle.main.url(forResource: "svg_file_name", withExtension: "svg")! let svgImageView = SVGImageView.init(contentsOf: url) view.addSubview(svgImageView) ``` Manually render each path of an SVG file into using CAShapeLayers: ```objective-c for(SVGBezierPath *path in [SVGBezierPath pathsFromSVGNamed:@"myImage"]) { // Create a layer for each path CAShapeLayer *layer = [CAShapeLayer layer]; layer.path = path.CGPath; // Set its display properties layer.lineWidth = 4; layer.strokeColor = [path.svgAttributes[@"stroke"] ?: [UIColor blackColor] CGColor]; layer.fillColor = [path.svgAttributes[@"fill"] ?: [UIColor redColor] CGColor]; // Add it to the layer hierarchy [self.view.layer addSublayer:layer]; } ``` ## Screenshots ### iOS ![iOS Screenshot](http://i.imgur.com/tD3oc04.png) ### macOS ![macOS Screenshot](http://i.imgur.com/7tY8Suw.png) ## Contributing ### Bug Reports & Feature Requests Please use the [issue tracker](https://github.com/arielelkin/pocketsvg/issues) to report any bugs or file feature requests. ### Developing PRs are welcome.