调试器用颜色显示一些值。请问我做错了什么
@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];
}
最佳答案
我猜 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 的浮点参数,因此只需将 slider 值传递给它而不将它们相除即可。
并且不要忘记将 [textColour release];
放在该方法的末尾,否则每次调用该方法时都会泄漏一个新的 UIColor 实例。
关于ios - 此 Objective-C 代码不会更改标签文本的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7213488/