私のUISegmentの外観に助けが必要です。UISegmentcontrolの出現で問題が発生する
このコードで選択したセグメントの色を変更するまで、問題が発生しました。
私はviewDidLoadのときにIBActionを呼び出しました。
それがこの
を表示するはずはなく、それは外観上の問題ですが、それを修正するために...私は外見コードをコメントしたときに、今わからない私は知っている、このことを示し、それは最初のでしょう画像。
appdelegate
//normal segment
[[UISegmentedControl appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"Rokkitt" 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] forState:UIControlStateNormal];
//selected segment
[[UISegmentedControl appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"Rokkitt" size:20.0],UITextAttributeFont,
[UIColor whiteColor], UITextAttributeTextColor,
[UIColor clearColor], UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
nil] forState:UIControlStateHighlighted];
IBActionコール
// Get number of segments
int numSegments = [infoSegment.subviews count];
// Reset segment's color (non selected color)
for(int i = 0; i < numSegments; i++) {
// reset color
[[infoSegment.subviews objectAtIndex:i] setTintColor:[UIColor colorWithRed:196.0/255.0 green:223.0/255.0 blue:155.0/255.0 alpha:1]];
}
// Sort segments from left to right
NSArray *sortedViews = [infoSegment.subviews sortedArrayUsingFunction:compareViewsByOrigin context:NULL];
// Change color of selected segment
[[sortedViews objectAtIndex:infoSegment.selectedSegmentIndex] setTintColor:[UIColor colorWithRed:51.0/255.0 green:166.0/255.0 blue:85.0/255.0 alpha:1]];
// Remove all original segments from the control
for (id view in infoSegment.subviews) {
[view removeFromSuperview];
}
// Append sorted and colored segments to the control
for (id view in sortedViews) {
[infoSegment addSubview:view];
}
いや、ちょうど色が違うだけです – Desmond
しかし、私は他のセグメントをクリックすると正しく動作します – Desmond