セグメント化されたコントロールで選択したセグメント化された色をカスタマイズ/変更するにはどうすればよいですか? UISegmentedControl selected segment colorで利用可能なメソッドを使用しようとしました。iOS 5 以下では完全に機能しましたが、iOS 6 では機能しませんでした。
基本的に、選択した/選択していないセグメントがはっきりと見えるように、選択したセグメントの色を明るい色に変更しようとしています。
セグメント化されたコントロールで選択したセグメント化された色をカスタマイズ/変更するにはどうすればよいですか? UISegmentedControl selected segment colorで利用可能なメソッドを使用しようとしました。iOS 5 以下では完全に機能しましたが、iOS 6 では機能しませんでした。
基本的に、選択した/選択していないセグメントがはっきりと見えるように、選択したセグメントの色を明るい色に変更しようとしています。
siddarth が言及したアプローチを使用しました。
セグメント化されたコントローラーをサブクラス化し、drawrect() メソッドをオーバーライドします。このようなもの:
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
for (int i=0; i<[self.subviews count]; i++)
{
if ([[self.subviews objectAtIndex:i]isSelected] )
{
UIColor *tintcolor=[UIColor redColor];
[[self.subviews objectAtIndex:i] setTintColor:tintcolor];
} else {
UIColor *tintcolor=[UIColor grayColor]; // default color
[[self.subviews objectAtIndex:i] setTintColor:tintcolor];
}
}
}
その特定のビューのサブクラスをオーバーライドしてから、そのdrawRect()メソッドをオーバーライドして、画面にカスタム表示することができます。