UISegmentedControl의 색상을 쉽게 변경할 수 있습니다. this, this site 및 가장 좋은 this solution과 같은 다양한 솔루션을 발견했습니다. 그러나 내가 원하는 것은 아무 것도 없었다.사용자 정의 색상의 UISegmentedControl : 구분선 버그
나는 간단한 일을 만드는 시도하고이 내 코드이고, 아주 쉬운 일 : (필자는 아이폰 OS 4.2을 사용하고 아닌 5.0 엑스 코드 4.0.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 3
에서 문제를 클릭, 내가 원하는 exacly이며, Option 1
및 Option 2
사이 (빨간색 사각형으로 표시)이 바보 파란색 선. 내가 다시 Option 1
에 클릭하면, 내가해야합니다 : 블루 라인보다
나는 이것을 어떻게 해결해야할지 모르겠다. 이 라인에 액세스하고 색상을 변경하려면 어떻게합니까? 아니면 다른 코드를 사용해야 할 것입니다. 어쩌면 그들은 같은 문제를 갖게 될 것입니다 ...
나는 당신과 같은 문제가 있었고 문제를 찾기 위해 며칠을 보냈습니다. 내 인생을 구한 많은 친구 고마워. !!!! – chatur