   
   // MARK: Spinner
   private func animateSpinner() {
-    self.userInteractionEnabled = true
+    self.userInteractionEnabled = false
     
     UIView.animateKeyframesWithDuration(1.25, delay: 0.0, options: [.Repeat, .BeginFromCurrentState, .CalculationModePaced], animations: { () -> Void in
       


public class FollowButton: UIView {
  
  private struct FollowButtonOptions {
    private let labelText: String
    private let textColor: UIColor
    private let backgroundColor: UIColor
    private let showSpinner: Bool
    private let showLabel: Bool
  }

import UIKit
import SnapKit

/**
  - parameter currentState: The button's current state when pressed. Classes that conform to this protocal
    can check for `.Following` and `.NotFollowing`
*/
public protocol FollowButtonDelegate: class {
  func didPressFollowButton(currentState: FollowButtonState)
}

/**
 - note: `.Loading` state isn't used outside of this class. It is not meant to be checked.
*/
public enum FollowButtonState {
  case NotFollowing
  case Following
