Im using monotouch. I don’t know why, but when the View was clicked, the color of the text did not change for me. To solve this problem, I simply add labels to segment the supervision of the supervision, and then change their colors:
public static void SetColoredTittles(this UISegmentedControl s, string[] titles, UIColor selected, UIColor notSelected) { var segmentedLabels = new List<UILabel>(); 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<UILabel> 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);
John Nov 16 '12 at 18:11 2012-11-16 18:11
source share