     public var checked = false {
       didSet { checkedImage.hidden = !checked }
     }
+
+    public enum Style {
+      case Default
+      case Custom
+    }
+    public var style: Style = .Default
+    public var checkedIcon: UIImage!
 
     public var data: Photo! {
       didSet {

    cell.loadData(collectionData[indexPath.row])
    cell.whenTapped(self, action: #selector(ImagesCollectionView.cellTapped(_:)))
    cell.radiused(radius)
    cell.tag = indexPath.row
    cell.layoutIfNeeded()
    if bordered {
      cell.bordered(1, color: UIColor.lightGrayColor().colorWithAlphaComponent(0.5).CGColor)
    }
    return cell
  }

  public func cellTapped(sender: UIGestureRecognizer) {
    let photo = collectionData[(sender.view?.tag)!]
    switch checkable {
    case .Single:
      collectionData.forEach({ $0.checked = false })
      collectionData[(sender.view?.tag)!].checked = true
      collectionView.reloadData()
    case .Multiple:
      photo.checked = !photo.checked
      collectionView.reloadData()
    default:
      break;
    }
    didChecked(collectionData, photo)
  }


    case Edit
  }



  public var style: ImageCell.Style! = .Default
  public var checkedIcon: UIImage! = getIcon(.Check, options: ["color": K.Color.buttonBg])

  public var mode: Mode = .Show
  public var checkable: Checkable = .None
  public var bordered: Bool = true
  public var currentBordered: Bool = false
  public var currentIndex: Int! = -1
  public var radius: CGFloat = 0
  public var didChecked = {(items: [Photo], checked: Photo) in }

  public convenience init(checkable: Checkable, checkedIcon: UIImage) {
    self.init(checkable: checkable)
    self.checkedIcon = checkedIcon
    self.style = .Custom
  }

  public init(checkable: Checkable, bordered: Bool = true, radius: CGFloat = 0, sectionInset: UIEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10)) {
    self.checkable = checkable
