UISegmentedControl Farbe ändern

Die meisten iPhone Interface Objekte sind farblich anpassbar an den gewünschten Look. Ein UISegmentedControl jedoch lässt sich zumindest über den Interface Builder nicht so schön „stylen“. Wie kann eine farbliche Anpassung geschehen, ohne die komplette Funktionalität mit UIButtons nachbauen zu müssen?

Die Lösung steckt in UISegmentedControlStyleBar und einem händischen Eingreifen in das Design dessen!

CGRect frame = CGRectMake( 0,0,100,40);
mySegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
mySegmentedControl.frame = frame;
mySegmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
mySegmentedControl.selectedSegmentIndex = selectedAttributeIndex;
mySegmentedControl.backgroundColor=[UIColor redColor];
[mySegmentedControl setTintColor:UIColor blueColor];

Alternativ kann die UIColor natürlich auch folgendermaßen gesetzt werden:

[UIColor colorWithRed:.5 green:.1 blue:.2 alpha:1]

An dieser Stelle sei auf die ClassReference von Apple verwiesen: UIColor zusätzlich passend zu der Thematik: UINavigationBar Color ändern und ein UIColor Cheatsheet