Cool Animated music indicator view written in Swift.
ESTMusicIndicator is an implementation of NAKPlaybackIndicatorView in Swift for iOS 8.
You may interested in my other project
- PHPHub-iOS PHPHub for iOS is the universal iPhone and iPad application for PHPHub.
- ESTMusicPlayer An elegant and simple iOS music player.
- ESTCollectionViewDropDownList A demo implementation of a drop down tag list view for iOS.
- Hodor A simple solution to localize your iOS App quickly.
- An iPhone/iPad running iOS 8.0+
- Xcode 7.0 or above
Run the Demo
$ open Example/ESTMusicIndicator.xcodeproj
CocoaPods is a dependency manager for Cocoa projects.
CocoaPods 0.36 adds supports for Swift and embedded frameworks. You can install it with the following command:
$ gem install cocoapods
To integrate ESTMusicIndicatorView into your Xcode project using CocoaPods, specify it in your Podfile:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! pod 'ESTMusicIndicator'
Then, run the following command:
$ pod install
You can check out this link for more information about how to use CocoaPods.
Swift Package Manager
Using XCode UI: Project Settings -> Swift Packages and add ESTMusicIndicator from there.
- Clone this project or download it.
- Drag and drop Classes folder to your workspace
let indicator = ESTMusicIndicatorView.init(frame: CGRect.zero) indicator.tintColor = .red indicator.sizeToFit() view.addSubview(indicator)
state property is ESTMusicIndicatorViewStateStopped and the
hidesWhenStopped property is YES.
Thus, the view is hidden at this time.
The view appears and the bars start animation.
indicator.state = .playing;
The bars stop animation and become idle.
indicator.state = .paused;
The view becomes hidden.
indicator.state = .stopped;
You can use ESTMusicIndicatorView in both code and Storyboard, and it works well with both Auto Layout and frame-based layout.
Code with Auto Layout
let indicator = ESTMusicIndicatorView.init(frame: CGRect.zero) indicator.translatesAutoresizingMaskIntoConstraints = false view.addSubview(indicator)
Then, add some positioning layout constraints. Note that normally you don’t need to add sizing constraints since ESTMusicIndicatorView has an intrinsic content size. It will be automatically resized to fit its content.
Code with Frame-Based Layout
let indicator = ESTMusicIndicatorView.init(frame: CGRect.zero) view.addSubview(indicator) indicator.sizeToFit() // Resize itself to fit its content.
The color of the bars can be changed by setting
tintColor property (
UIView) of the view or its ancestor view.
Normally the view can be automatically resized to fit its content by:
- Omitting sizing constraints in Auto Layout, since it has an intrinsic content size.
sizeToFitin frame-based layout.
Or if you explicitly specify size, the bars will be placed in the center of the view.
Thank you for your interest in contributing to Hodor! Your ideas for improving this app are greatly appreciated. The best way to contribute is by submitting a pull request. I’ll do my best to respond to you as soon as possible. You can also submit a new GitHub issue if you find bugs or have questions.
Copyright (c) 2017-2018 Paul King
Released under the MIT license