@Portland Runner Antwort für die ältere Version von Swift ist.
Swift 3.0, das funktioniert.
Logik ist die gleiche wie die @Portland Runner, aber die Syntax modifiziert und aktualisiert nach Swift 3.0
hier, um diesen Code, den ich umgesetzt haben, ist die Erweiterung für das Steuer Segment und kann für alle Segmentsteuerungen verwendet werden in der Anwendung, wo der Code in der Anwendungsklasse definiert werden muss.
extension UISegmentedControl {
func setSegmentStyle() {
setBackgroundImage(imageWithColor(color: backgroundColor!), for: .normal, barMetrics: .default)
setBackgroundImage(imageWithColor(color: tintColor!), for: .selected, barMetrics: .default)
setDividerImage(imageWithColor(color: UIColor.clear), forLeftSegmentState: .normal, rightSegmentState: .normal, barMetrics: .default)
let segAttributes: NSDictionary = [
NSForegroundColorAttributeName: UIColor.gray,
NSFontAttributeName: UIFont(name: "System-System", size: 14)!
]
setTitleTextAttributes(segAttributes as [NSObject : AnyObject], for: UIControlState.selected)
}
// create a 1x1 image with this color
private func imageWithColor(color: UIColor) -> UIImage {
let rect = CGRect(x: 0.0, y: 0.0, width: 1.0, height: 1.0)
UIGraphicsBeginImageContext(rect.size)
let context = UIGraphicsGetCurrentContext()
context!.setFillColor(color.cgColor);
context!.fill(rect);
let image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image!
}
}
Überall für die Segmente die folgenden Code verwendet werden kann
self.mySegment.setSegmentStyle()