How to remove border from segmented control

后端 未结 9 2205
刺人心
刺人心 2020-12-03 05:04

How do I remove the outside border of a segmented control? I\'ve set the divider image to what I wanted but now to follow the mock of my app I need to have a segmented cont

9条回答
  •  执笔经年
    2020-12-03 05:46

    If you want save borders between cells

    extension UISegmentedControl {
      func removeBorders() {
        if let backgroundColor = backgroundColor, let backgroundImage = UIImage.imageWithSize(size: CGSize.one_one, color: backgroundColor){
          setBackgroundImage(backgroundImage, for: .normal, barMetrics: .default)
        }
    
        if let tintColor = tintColor, let tintImage = UIImage.imageWithSize(size: CGSize.one_one, color: tintColor){
          setBackgroundImage(tintImage, for: .selected, barMetrics: .default)
            setDividerImage(tintImage, forLeftSegmentState: .normal, rightSegmentState: .normal, barMetrics: .default)
        }
      }
    }
    
    extension CGSize{
      static var one_one: CGSize{
        return CGSize(width: 1.0, height: 1.0)
      }
    }
    
    extension UIImage{
      static func imageWithSize(size : CGSize, color : UIColor = UIColor.white) -> UIImage? {
        var image:UIImage? = nil
        UIGraphicsBeginImageContext(size)
        if let context = UIGraphicsGetCurrentContext() {
          context.setFillColor(color.cgColor)
          context.addRect(CGRect(origin: CGPoint.zero, size: size));
          context.drawPath(using: .fill)
          image = UIGraphicsGetImageFromCurrentImageContext();
        }
        UIGraphicsEndImageContext()
        return image
      }
    }
    

提交回复
热议问题