选择另一个段后,为什么iOS不会分割控件的颜色还原

时间:2016-01-23 15:09:01

标签: ios objective-c colors

Picture http://7xpaek.com1.z0.glb.clouddn.com/W7LFsuLWup.gif

这是iOS编程4ed的第6章中的一个问题。在原点应用程序中,您可以触摸屏幕将圆形颜色更改为随机颜色。问题是要求您添加三个项目的分段控件:红色,绿色和蓝色。单击分段控件,圆形颜色应更改为相应的颜色。

在解决该问题的过程中,我当然添加了一个分段控件。但是你可以在gif中看到,点击后,每个段的颜色都不会恢复,最后整个分段控件变成全蓝色。

但是selectedSegmentIndex就像应该的那样行事。

当我录制gif时,我//代码来控制颜色,因此圆圈颜色不会变为红色,绿色或蓝色。所以不要介意圆圈颜色,因为它不是红色,绿色或蓝色。

这是我用来定义分段控件的代码:

NSArray *segmentedControlTitle = @[@"Red", @"Green", @"Blue"];
self.segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentedControlTitle];
self.segmentedControl.frame = CGRectMake(30, 50, 150, 30);
[self.segmentedControl addTarget:self action:@selector(controlChanged:) forControlEvents:1 << 12];
[self addSubview:self.segmentedControl];

我发现只要圆圈颜色不变,分段控制颜色就会正确变化。如果只有圆形颜色发生变化(无论是通过触摸屏幕还是通过分段控制来改变),分段控制颜色都会改变,就像在gif中一样。

那为什么会这样呢?这是一个错误还是有什么我没有完成的?

所有源代码here

1 个答案:

答案 0 :(得分:4)

你需要一行

cell.format = '[green]$#,###0'

因为每次U改变圆的颜色,你重新启动你的段控制,例如你点击屏幕10次和U调用 - (void)drawRect:(CGRect)rect 10次,你有10个segmentedControls在另一个))