如何动态更改任何视图的背景颜色?

时间:2009-10-14 13:15:42

标签: iphone objective-c uiview background-color

如何动态更改视图的背景颜色?我是否设置了计时器并指定视图的背景颜色属性以在循环中更改?

如何实现此功能?

2 个答案:

答案 0 :(得分:1)

代码中的某处(viewDidAppear是个好地方)

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5 // seconds
                                                  target:self
                                                selector:@selector(changeBackground:)
                                                userInfo:nil
                                                 repeats:YES];

班上的一个方法:

- (void)changeBackground:(NSTimer *)timer {

    if (iWantToCancelTimer) {
        [timer invalidate];
    }

    self.view.backgroundColor = [UIColor whateverColor];
}

这将是一个突然的变化,所以你可能想制作动画,但这是一个不同的问题。

答案 1 :(得分:0)

听起来你只想让你的视图每隔x个时间改变背景颜色。为此,对于有问题的视图,您可以设置计时器并在每次触发时更改背景(您可以随机生成一些RGB值)。

您可以使用+(NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)秒target:(id)目标选择器:(SEL)aSelector userInfo:(id)userInfo重复:(BOOL)重复以将计时器设置为选择器并在在那里你可以改变视图背景...请记住,UIKit不是线程,所以如果你有另一个线程运行的计时器你应该改变主线程上的视图背景..