Skip to content

A Simple Audio Recorder View with "hold to Record Button" and "Swipe to Cancel " Like WhatsApp

License

Notifications You must be signed in to change notification settings

howseen/iRecordView

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iRecordView

a Simple Audio Recorder View with hold to Record Button and Swipe to Cancel

Version License Platform

Demo

demo image

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

License

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

About

A Simple Audio Recorder View with "hold to Record Button" and "Swipe to Cancel " Like WhatsApp

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 96.6%
  • Ruby 3.4%