                 didPressed: {
                     segmentedControlItem in
                     let index = self.items.indexOf(segmentedControlItem)!
-                    self.selectItemAtIndex(index)
+                    self.selectItemAtIndex(index, withAnimation: true)
                     self.action?(segmentedControl: self, index: index)
                     self.delegate?.segmentedControlDidPressedItemAtIndex?(self, index: index)
             })

        }
    }
    
    private func moveSelectorAtIndex (index: Int) {
        let width = frame.size.width / CGFloat(items.count)
        let target = width * CGFloat(index)
        UIView.animateWithDuration(0.3,
            delay: 0,
            usingSpringWithDamping: 1,
            initialSpringVelocity: 0,

    
    // MARK: Select
    
    public func selectItemAtIndex (index: Int, withAnimation: Bool) {
        moveSelectorAtIndex(index, withAnimation: withAnimation)
        for item in items {
            if item == items[index] {
                item.label.textColor = appearance.selectedTextColor
