【发布时间】:2012-05-18 03:44:50
【问题描述】:
在方法或循环中为 NSWindow (Mac OS X) 和 UIView (iOS) 设置背景颜色时遇到了很大的麻烦。 以下设置背景颜色的代码仅适用于循环中的最后一行代码,即当 i、j、k 的所有值均为 255 时,屏幕变为白色作为适当的 RGB 混合。
`- (void) ChangeColorLoop
{
for (int i=0; i<=255; i++)
for (int j=0; j<=255; j++)
for (int k=0; k<=255; k++)
{
[NSThread sleepForTimeInterval: 0.1];
//NSLog(@"%d, %d, %d", i, j, k);
float red = (float) i/255;
float green = (float) j/255;
float blue = (float) k/255;
float alpha = 1.0f;
UIColor *mixedColor = [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
//BackgroundView.backgroundColor = mixedColor;
[BackgroundView setBackgroundColor:mixedColor];
}
}`
提前致谢,
杰瑞
【问题讨论】:
-
此方法是否在后台线程上运行?
-
我不知道,但它假设我发布的是 (IBAction) 而不是 (void)。所以当我点击按钮时,它会触发这个方法并开始运行。
标签: objective-c loops uiview background-color nswindow