调试器显示一些颜色值。请问我做错了什么
@synthesize textLabel;
@synthesize textField;
@synthesize sliderRed;
@synthesize sliderGreen;
@synthesize sliderBlue;
- (void)dealloc
{
[textLabel release];
[super dealloc];
}
- (IBAction)updateLabel
{
NSString * textValue = [textField text];
float red = [sliderRed value]/255.f;
float green = [sliderGreen value]/255.f;
float blue = [sliderBlue value]/255.f;
UIColor *textColour = [[UIColor alloc]initWithRed:red green:green blue:blue alpha:1.0];
[textLabel setText:textValue];
[textLabel setTextColor:textColour];
}
答案 0 :(得分:2)
我认为sliderRed,sliderGreen和sliderBlue是UISlider实例?他们的最小/最大值是多少?如果你把它保留在0.0到1.0的默认值,那么这段代码会给你一些非常低的值:
float red = [sliderRed value]/255.f;
float green = [sliderGreen value]/255.f;
float blue = [sliderBlue value]/255.f;
你使用的UIColor方法将浮点参数从0.0增加到1.0,因此只需将滑块值传递给它而不分割它们就可以了。
并且不要忘记将[textColour release];
放在该方法的末尾,否则每次调用该方法时都会泄漏一个新的UIColor实例。
答案 1 :(得分:1)
您的密码没有错。也许在其他地方出了问题。
尝试更换此行:
UIColor *textColour = [[UIColor alloc]initWithRed:red green:green blue:blue alpha:1.0];
到
UIColor *textColour = [UIColor redColor];
检查redColor是否有效。如果没有,那么你的其他代码可能有问题。
答案 2 :(得分:1)
尝试在更改绘图属性后添加[textLabel setNeeedsDisplay]
。