我使用以下代碼來設置UISegmentedControl中每個分段的顏色。UISegmentedControl分段順序問題
for (int i = 0; i < [self.controlStatus numberOfSegments]; i++)
{
NSArray *ar=self.controlStatus.subviews;
if ([[self.controlStatus titleForSegmentAtIndex:i] isEqualToString:@"ON"])
{
[[self.controlStatus.subviews objectAtIndex:i] setTintColor:[UIColor greenColor]];
}
else if ([[self.controlStatus titleForSegmentAtIndex:i] isEqualToString:@"OFF"])
{
[[self.controlStatus.subviews objectAtIndex:i] setTintColor:[UIColor orangeColor]];
}
else if ([[self.controlStatus titleForSegmentAtIndex:i] isEqualToString:@"HIDE"])
{
[[self.controlStatus.subviews objectAtIndex:i] setTintColor:[UIColor redColor]];
}
}
}
但我沒有得到顏色,因爲我需要在相應的部分。有時顏色如下:
1段 - 綠色
第2段 - ORANGE
第3段 - RED
但在某些階段,當我瀏覽到其他頁面,然後回來,顏色的變化:
第1段 - RED
第2段 - ORANGE
第3段 - 綠色
誰能給我約在這裏發生什麼的想法。
你正在搞亂分段控件的私人子視圖結構。這總是一個壞主意。您的代碼假定子視圖與段的順序相同。錯誤的假設。 – rmaddy
你可以給我一些關於如何做到這一點的建議嗎? –