 		}
 	}
 	
-	override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
+	public override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
 		if autoHides {
 			visible = false
 		}
 	}
 	
-	func _handleGesture(gesture: UIGestureRecognizer) {
+	internal func _handleGesture(gesture: UIGestureRecognizer) {
 		let location = gesture.locationInView(self)
 		setNewIndex(point: location)
 		if autoHides {

	
}

class STBTableViewIndex: UIControl {
	
	weak var delegate: STBTableViewIndexDelegate!
	private var panGestureRecognizer: UIPanGestureRecognizer!
	private var tapGestureRecognizer: UITapGestureRecognizer!
	
	var currentIndex = 0
	var currentTitle: String { return titles[currentIndex] }
	
	var view = UIView(frame: CGRectZero)
	
	var titles: Array<String> {
	didSet {
		createLabels()
	}
	}
	
	var autoHides = true
	var visible: Bool {
	didSet {
		UIView.animateWithDuration(0.2, animations: { [unowned self] in
			self.view.alpha = self.visible ? 1.0 : 0.0
		})
	}
	}
	
	var labels = Array<UILabel>()
	
	private var width: CGFloat { return 16.0 }
	private var horizontalPadding: CGFloat { return 5.0 }

	}
	
	
	public convenience override init() {
		self.init(frame: CGRectZero)
	}
	
	public override init(frame: CGRect) {
		titles = Array<String>()
		visible = true
		super.init(frame: CGRectZero)
		initialize()
	}
	
	public required init(coder aDecoder: NSCoder) {
		titles = Array<String>()
		visible = true
		super.init(coder: aDecoder)
