UISegmentedControlの色を簡単に変更できます。私はthis,this site、そして最高のthis solutionのような様々な解決策を見つけました。しかし、私が望むものはありませんでした。UISegmentedControl with custom color:セパレータラインバグ
これは私のコードだった、私はシンプルなものを作成しようと、それは非常に簡単に動作します。(私は5.0とXcode 4.0.2、iOSの4.2ない使用しています)
id segment[3];
UISegmentedControl *segmentedControl;
- (id)init
{
NSArray *itens = [NSArray arrayWithObjects: @"Option 1", @"Option 2", @"Option 3", nil];
segmentedControl = [[UISegmentedControl alloc] initWithItems:itens];
[segmentedControl setFrame:CGRectMake(0, 0, 500, 30)];
[segmentedControl setSegmentedControlStyle:UISegmentedControlStyleBar];
[segmentedControl addTarget:self
action:@selector(segmentedControl:)
forControlEvents:UIControlEventAllEvents];
switch (type) {
case type1: [segmentedControl setSelectedSegmentIndex:0]; break;
case type2: [segmentedControl setSelectedSegmentIndex:1]; break;
case type3: [segmentedControl setSelectedSegmentIndex:2]; break;
}
for (int i=0; i<3; i++) {
//The most important trick to work, have to retain the subviews
segment[i] = [[[segmentedControl subviews] objectAtIndex:i] retain];
}
[self changeColor];
[self addSubview:segmentedControl];
return self;
}
- (void)segmentedControl:(id)sender
{
//do some thing
[self changeColor];
}
- (void)changeColor{
for (int i=0; i<3; i++) {
[segment[i] setTintColor:[UIColor lightGrayColor]];
}
int select = segmentedControl.selectedSegmentIndex;
[segment[select] setTintColor:[UIColor blueColor]];
}
をだから、これを作成します。非常に良い
、その後、私はをクリックしOption 2
うわー、これはOption 1
とOption 2
間の問題、(赤い四角でマーク)は、この愚かな青い線私が欲しいものexaclyですので、今すぐOption 3
をクリックします。私は再びOption 1
にクリックした場合、私が持っているでしょう:ブルーラインより
これを解決する方法はわかりません。この行にアクセスして色を変更するにはどうすればよいですか?あるいは、私は他のコードを使用する必要があります。多分彼らは同じ問題を抱えているでしょう...
私はあなたと同じ問題を抱えていて、問題を見つけるのに数日を費やしました。あなたが私の人生を救った多くの友達に感謝します.. !!!! – chatur