             }
         }
         
-        let currentIndicatorWidth = indicatorFrame.size.width
-        let widthToMinus = CGFloat(1 - self.indicatorWidthPercent) * currentIndicatorWidth
-        // final width
-        indicatorFrame.size.width = currentIndicatorWidth - widthToMinus
-        // frame position
-        indicatorFrame.origin.x += widthToMinus / 2
+        if self.selectionStyle != .arrow {
+            let currentIndicatorWidth = indicatorFrame.size.width
+            let widthToMinus = CGFloat(1 - self.indicatorWidthPercent) * currentIndicatorWidth
+            // final width
+            indicatorFrame.size.width = currentIndicatorWidth - widthToMinus
+            // frame position
+            indicatorFrame.origin.x += widthToMinus / 2
+        }
         
         return indicatorFrame
+    }
+    
+    private func getDynamicWidthTillSegmentIndex() -> (CGFloat, CGFloat){
+        var selectedSegmentOffset : CGFloat = 0
+        var i = 0
+        var selectedSegmentWidth : CGFloat = 0
+        for width in self.segmentWidthsArray {
+            if self.selectedSegmentIndex == i {
+                selectedSegmentWidth = width
+                break
+            }
+            selectedSegmentOffset += width
+            i += 1
+        }
+        return (selectedSegmentOffset, selectedSegmentWidth)
     }
     
     private func frameForFillerSelectionIndicator() -> CGRect {

        var indicatorFrame = CGRect.zero
        
        if self.selectionStyle == .arrow {
            let widthToStartOfSelIndex : CGFloat = CGFloat(self.selectedSegmentIndex) * self.segmentWidth
            let widthToEndOfSelIndex : CGFloat = widthToStartOfSelIndex + self.segmentWidth
            let xPos = widthToStartOfSelIndex + ((widthToEndOfSelIndex - widthToStartOfSelIndex) / 2) - (self.selectionIndicatorHeight)
            indicatorFrame = CGRect(x: xPos, y: indicatorYOffset, width: self.selectionIndicatorHeight * 2, height: self.selectionIndicatorHeight)
        } else {

            var i = 0
            for width in self.segmentWidthsArray {
                if self.selectedSegmentIndex == i {
                    break
                }
                selectedSegmentOffset += width
                i += 1
