I try to change font color from white to black for UISegmentedControl (for iOS 4.*)
UISegmentedControl *button = [[[UISegmentedControl alloc] in
Im using monotouch. Dont know why, but when View was pushed text color doesnt changed for me. for solve this im just add labels to segment control superview and then change their colours:
public static void SetColoredTittles(this UISegmentedControl s, string[] titles, UIColor selected, UIColor notSelected)
{
var segmentedLabels = new List();
float width = s.Frame.Width/titles.Length;
for (int i = 0; i < titles.Length; i++)
{
var frame = new RectangleF(s.Frame.X + i*width, s.Frame.Y, width,s.Frame.Height);
UILabel label = new UILabel(frame);
label.TextAlignment = UITextAlignment.Center;
label.BackgroundColor = UIColor.Clear;
label.Font = UIFont.BoldSystemFontOfSize(12f);
label.Text = titles[i];
s.Superview.AddSubview(label);
segmentedLabels.Add(label);
}
s.ValueChanged += delegate
{
TextColorChange(s,segmentedLabels, selected, notSelected);
};
TextColorChange(s,segmentedLabels, selected, notSelected);
}
static void TextColorChange(UISegmentedControl s, List segmentedLabels, UIColor selected, UIColor notSelected)
{
for (int i = 0; i < segmentedLabels.Count; i++)
{
if(i == s.SelectedSegment) segmentedLabels[i].TextColor = selected;
else segmentedLabels[i].TextColor = notSelected;
}
}
and then use it
segmented.SetColoredTittles(new string[] {
"text1",
"text2",
"text3"
}, UIColor.White,UIColor.DarkGray);