# MultiProgressView **Repository Path**: ansel_peng/MultiProgressView ## Basic Information - **Project Name**: MultiProgressView - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-11-15 - **Last Updated**: 2022-11-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Build Status Platform Swift 5 Code Coverage CocoaPods Carthage Swift Package Manager Platform 📊 **MultiProgressView** is an animatable view that depicts multiple progresses over time. Modeled after [UIProgressView](https://developer.apple.com/documentation/uikit/uiprogressview). --- ## Examples To run the example project, clone the repo and run the `MultiProgressViewExample` target.

## Basic Usage ### Programmatic 1. Add a `MultiProgressView` to your view hierarchy: ```swift let progressView = MultiProgressView() view.addSubview(progressView) ``` 2. Conform your class to the `MultiProgressViewDataSource` protocol and set your progress view's `dataSource`: ```swift func numberOfSections(in progressView: MultiProgressView) -> Int func progressView(_ progressView: MultiProgressView, viewForSection section: Int) -> ProgressViewSection ``` ```swift progressView.dataSource = self ``` 3. Call `setProgress(section:to:)` to update your view's progress: ```swift progressView.setProgress(section: 0, to: 0.4) //animatable ``` ### Storyboards 1. Drag a `UIView` onto your view controller and set the view's class to `MultiProgressView` in the *Identity Inspector*: ![IdentityInspector](https://raw.githubusercontent.com/mac-gallagher/MultiProgressView/master/Images/storyboard_identity_inspector.gif) 3. Connect your progress view to your view controller with an `IBOutlet`: ![IBOutlet](https://raw.githubusercontent.com/mac-gallagher/MultiProgressView/master/Images/storyboard_ib_outlet.gif) 4. Conform your view controller to the `MultiProgressViewDataSource` protocol and implement the required methods: ```swift func numberOfSections(in progressView: MultiProgressView) -> Int func progressView(_ progressView: MultiProgressView, viewForSection section: Int) -> ProgressViewSection ``` 5. Set your view controller as the progress view's `dataSource`: ![DataSource](https://raw.githubusercontent.com/mac-gallagher/MultiProgressView/master/Images/storyboard_data_source.gif) 6. Call `setProgress(section:to:)` to update your view's progress: ```swift progressView.setProgress(section: 0, to: 0.4) //animatable ``` ## Customization ### MultiProgressView Each `MultiProgressView` exposes the variables listed below. If using storyboards, many of these properties can be customized directly in the view's *Attribute Inspector*. ```swift var cornerRadius: CGFloat = 0 var borderWidth: CGFloat = 0 var borderColor: UIColor? = .black var lineCap: LineCapType = .square var trackInset: CGFloat = 0 var trackBackgroundColor: UIColor? = .clear var trackBorderColor: UIColor? = .black var trackBorderWidth: CGFloat = 0 var trackImageView: UIImageView var trackTitleLabel: UILabel var trackTitleEdgeInsets: UIEdgeInsets = .zero var trackTitleAlignment: AlignmentType = .center ``` **Note**: To apply a corner radius (using `layer.cornerRadius` or the `cornerRadius` variable) the `lineCap` type must be set to `.round`. ### ProgressViewSection Each `ProgressViewSection` exposes the following variables: ```swift var imageView: UIImageView var titleLabel: UILabel var titleEdgeInsets: UIEdgeInsets = .zero var titleAlignment: AlignmentType = .center ``` ## Installation ### CocoaPods MultiProgressView is available through [CocoaPods](). To install it, simply add the following line to your Podfile: pod 'MultiProgressView' ### Carthage MultiProgressView is available through [Carthage](). To install it, simply add the following line to your Cartfile: github "mac-gallagher/MultiProgressView" ### Swift Package Manager MultiProgressView is available through [Swift PM](). To install it, simply add the package as a dependency in `Package.swift`: ```swift dependencies: [ .package(url: "https://github.com/mac-gallagher/MultiProgressView.git", from: "1.2.0"), ] ``` ### Manual Download and drop the `MultiProgressView` directory into your project. ## Requirements * iOS 9.0+ * Xcode 10.2+ * Swift 5.0+ ## Apps Using MultiProgressView We love to hear about apps that use MultiProgressView - feel free to submit a pull request and share yours here! ---

Made with ❤️ by Mac Gallagher
(Header design by Mazen Ghani)