1

したがって、セグメント化されたコントローラーの選択された色を私が求めるものに設定し、選択されていないセグメントを別の色に設定することを期待するコードが少しあります。以下を参照してください。

    //normal segment
NSDictionary *normalAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                  [UIFont fontWithName:@"Rok" size:20.0],UITextAttributeFont,
                                  [UIColor colorWithRed:75.0/255.0 green:75.0/255.0 blue:75.0/255.0 alpha:1.0], UITextAttributeTextColor,
                                  [UIColor clearColor], UITextAttributeTextShadowColor,
                                  [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
                                  nil];//[NSDictionary dictionaryWithObject:  [UIColor redColor]forKey:UITextAttributeTextColor];
[segmentedControl setTitleTextAttributes:normalAttributes forState:UIControlStateNormal];

NSDictionary *selectedAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                    [UIFont fontWithName:@"Rok" size:20.0],UITextAttributeFont,
                                    [UIColor whiteColor], UITextAttributeTextColor,
                                    [UIColor clearColor], UITextAttributeTextShadowColor,
                                    [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
                                    nil] ;//[NSDictionary dictionaryWithObject:  [UIColor redColor]forKey:UITextAttributeTextColor];
[segmentedControl setTitleTextAttributes:selectedAttributes forState:UIControlStateSelected];

だから私は何が間違っているのですか?選択したセグメントの色を直接変更するのが非常に難しいのは本当にイライラします!ボタンの列を使いたくなります!

助けてくれた人に感謝します。

4

1 に答える 1

1

UISegmentedControl の値変更イベントにこのコードを追加します。

 for (int i=0; i<[sender.subviews count]; i++) 
 {
   if ([[sender.subviews objectAtIndex:i]isSelected] ) 
   {               
     UIColor *tintcolor=[UIColor redColor]; //your requiremnent color here
     [[sender.subviews objectAtIndex:i] setTintColor:tintcolor];
     break;
   }
 }
于 2012-08-23T08:44:58.367 に答える