iRecordView
a Simple Audio Recorder View with hold to Record Button and Swipe to Cancel
Demo
Installation
iRecordView is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'iRecordView'Usage
add the views RecordButton and RecordView to your ViewController using Code or Storyboard
let recordButton = RecordButton()
recordButton.translatesAutoresizingMaskIntoConstraints = false
let recordView = RecordView()
recordView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(recordButton)
view.addSubview(recordView)
recordButton.widthAnchor.constraint(equalToConstant: 35).isActive = true
recordButton.heightAnchor.constraint(equalToConstant: 35).isActive = true
recordButton.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -8).isActive = true
recordButton.bottomAnchor.constraint(equalTo: view.safeBottomAnchor, constant: -16).isActive = true
recordView.trailingAnchor.constraint(equalTo: recordButton.leadingAnchor, constant: -20).isActive = true
recordView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 10).isActive = true
recordView.bottomAnchor.constraint(equalTo: recordButton.bottomAnchor).isActive = truenow add your recordView to recordButton
//IMPORTANT
recordButton.recordView = recordViewnow you can observe the states using the delegate
recordView.delegate = selfthis will give you 4 functions
func onStart() {
//start recording
print("onStart")
}
func onCancel() {
//when users swipes to delete the Record
print("onCancel")
}
func onFinished(duration: CGFloat) {
//user finished recording
print("onFinished \(duration)")
}
//optional
func onAnimationEnd() {
//when Trash Animation is Finished
print("onAnimationEnd")
}Customization
//Cancel Record when Slide To Cancel view gets before duration time + offset
recordView.offset = 20
//enable/disable Record Sounds
recordView.isSoundEnabled = true
recordView.durationTimerColor = .red
recordView.smallMicImage = myImage
recordView.slideToCancelText = "Test"
recordView.slideToCancelTextColor = .red
recordView.slideToCancelArrowImage = myImage
//to Handle Clicks by RecordButton you have to disable touch Gesture by using
recordButton.listenForRecord = falseAuthor
AbdulAlim Rajjoub
Thanks/Credits
RATTLESNAKE-VIPER for GLMoveToTrashAnimation
Looking for Android Version?
try out RecordView
License
iRecordView is available under the MIT license. See the LICENSE file for more info.

