5

セグメント化されたコントロールで選択したセグメント化された色をカスタマイズ/変更するにはどうすればよいですか? UISegmentedControl selected segment colorで利用可能なメソッドを使用しようとしました。iOS 5 以下では完全に機能しましたが、iOS 6 では機能しませんでした。

基本的に、選択した/選択していないセグメントがはっきりと見えるように、選択したセグメントの色を明るい色に変更しようとしています。

4

2 に答える 2

4

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];
    }
   }

}
于 2012-10-17T20:38:17.343 に答える
3

その特定のビューのサブクラスをオーバーライドしてから、そのdrawRect()メソッドをオーバーライドして、画面にカスタム表示することができます。

于 2012-10-17T04:27:50.303 に答える