0

如何动态更改视图的背景颜色?我是否设置了一个计时器并分配视图的背景颜色属性以循环更改?

如何实现这个功能?

4

2 回答 2

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];
}

这将是一个突然的变化,因此您可能想要制作动画,但这是一个不同的问题。

于 2009-10-14T13:50:29.740 回答
0

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

您可以使用 + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats 将计时器设置为选择器,在那里您可以更改视图背景...请记住 UIKit 不是线程安全的,因此如果您在另一个线程中运行计时器,您应该更改主线程上的视图背景..

于 2009-10-14T13:49:21.280 回答