 		redrawComponents()
 	}
 	
-	public func setSelectedIndex(index: Int, animated: Bool, moveScrollView: Bool) {
+	public func setSelectedIndex(index: Int, animated: Bool) {
+		setSelectedIndex(index, animated: animated, moveScrollView: true)
+	}
+	
+	// MARK: - Private -
+	
+	private func setSelectedIndex(index: Int, animated: Bool, moveScrollView: Bool) {
 		selectedIndex = index
 		
 		moveToIndex(index, animated: animated, moveScrollView: moveScrollView)
 	}
-	
-	// MARK: - Private -
 	
 	private func addViews(segmentViews: [UIView]) {
 		for view in scrollView!.subviews {

			button.setTitleColor((i == selectedIndex) ? selectedTextColor : textColor, forState: .Normal)
			button.titleLabel?.font = (i == selectedIndex) ? selectedFont : font
		}
		
		moveToIndex(selectedIndex, animated: false, moveScrollView: false)
		
		if scrollView != nil {
			scrollView!.contentSize = CGSizeMake(scrollView!.frame.size.width * CGFloat(buttons.count), scrollView!.frame.size.height)
			
			for i in 0..<views.count {
				views[i].frame = CGRectMake(scrollView!.frame.size.width * CGFloat(i), 0, scrollView!.frame.size.width, scrollView!.frame.size.height)
			}
		}
	}
	
	func buttonSelected(sender: UIButton) {

	}
	
	private func redrawComponents() {
		redrawButtons()
		
		if buttons.count > 0 {
			moveToIndex(selectedIndex, animated: false, moveScrollView: false)
		}
		
		if scrollView != nil {
			scrollView!.contentSize = CGSizeMake(scrollView!.frame.size.width * CGFloat(buttons.count), scrollView!.frame.size.height)
			
			for i in 0..<views.count {
				views[i].frame = CGRectMake(scrollView!.frame.size.width * CGFloat(i), 0, scrollView!.frame.size.width, scrollView!.frame.size.height)
			}
		}
	}
	
	private func redrawButtons() {
		if buttons.count == 0 {
			return
		}
