iRecordView
iRecordView copied to clipboard
A Simple Audio Recorder View with "hold to Record Button" and "Swipe to Cancel " Like WhatsApp
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 = true
now add your recordView
to recordButton
//IMPORTANT
recordButton.recordView = recordView
now you can observe the states using the delegate
recordView.delegate = self
this 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 = false
Author
AbdulAlim Rajjoub
Thanks/Credits
RATTLESNAKE-VIPER for GLMoveToTrashAnimation
Looking for Android Version?
try out RecordView
Need a Chat app 💬 ?
Check out FireApp Chat

License
iRecordView is available under the MIT license. See the LICENSE file for more info.