Update
Case 1 - Setting borderColor of each element in a segmented controller
code
extension UIView { ///Add border color with corners func addBorderWithColor(color: UIColor, roundingCorners: UIRectCorner) { self.layer.borderWidth = 1 self.layer.borderColor = color.CGColor self.addRoundingCorners(roundingCorners) } ///Use corner radius depending on UIRectCorner private func addRoundingCorners(roundingCorners: UIRectCorner) { let path = UIBezierPath(roundedRect:self.bounds, byRoundingCorners:roundingCorners, cornerRadii: CGSizeMake(4, 4)) let maskLayer = CAShapeLayer() maskLayer.path = path.CGPath self.layer.mask = maskLayer } } let segmentedControl = UISegmentedControl(items: ["Red", "Green", "Blue"]) segmentedControl.subviews[0].addBorderWithColor(UIColor.blueColor(), roundingCorners: [.TopRight, .BottomRight]) segmentedControl.subviews[1].addBorderWithColor(UIColor.greenColor(), roundingCorners: []) segmentedControl.subviews[2].addBorderWithColor(UIColor.redColor(), roundingCorners: [.TopLeft, .BottomLeft]) segmentedControl.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.blackColor()], forState: UIControlState.Normal)
playground

Case 2 - Get Rid of Borders
code
let segmentedControl = UISegmentedControl(items: ["Red", "Green", "Blue"]) //Change Text Attributes (Changing textColor to black) //**Be sure to manage all the UIControlState for these attributes if you need to customize this for other states segmentedControl.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.blackColor()], forState: UIControlState.Normal) //Change tintColor to clear, in order to set border invisible segmentedControl.tintColor = UIColor.clearColor()
playground

Original answer
No answer
You cannot remove a UISegmentedControl border
You can create a custom control using UIButton to achieve what you are looking for.
In the UISegmentedControl state UISegmentedControl you can remove the separators between elements in the UISegmentedControl , or you can change tintColor (borderColor)

Eridb source share