我想删除UISegmentController的边框.如果有可能.否则在自定义边框颜色中更改它.
码
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)
操场
码
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()
操场
答案是否定的。
您不能删除边框UISegmentedControl
您可以使用来创建自定义控件,UIButton
以实现所需的功能。
在状态下UISegmentedControl
,您可以删除中的项目之间的分隔线UISegmentedControl
,也可以更改tintColor(borderColor)