         let frame = CGRectMake(contentScrollView.frame.size.width * CGFloat(index), 0,
             contentScrollView.frame.size.width, contentScrollView.frame.size.height) ;
         if frame.origin.x < contentScrollView.contentSize.width {
+            enableParallex = false
+            // It doesn't look good if the tab's jumo back and then gets animated back
+            var point = tabLabels[index].frame.origin
+            point.x -= (titleScrollView.bounds.size.width - tabLabels[index].frame.size.width)/2
+            titleScrollView.setContentOffset(point, animated: true)
             contentScrollView.scrollRectToVisible(frame, animated: animated)
         }
     }

        super.loadView()
        let size = self.view.bounds.size
        titleScrollView = UIScrollView(frame: CGRectZero)
        titleScrollView.autoresizingMask = .FlexibleWidth | .FlexibleBottomMargin
        titleScrollView.backgroundColor = UIColor.whiteColor()
        titleScrollView.canCancelContentTouches = false
        titleScrollView.showsHorizontalScrollIndicator = false
        titleScrollView.bounces = false
        titleScrollView.delegate = self
        titleScrollView.setTranslatesAutoresizingMaskIntoConstraints(false)
        self.view.addSubview(titleScrollView)
        
        bottomLine = UIView(frame: CGRectZero)

    private var tabLabels = [UIButton]()
    private var bottomLine, tabIndicator : UIView!
    private var selectedIndex : Int = 0
    private var enableParallex = true
    
    public var selectedViewController : UIViewController {
        get {
