如何动态更改视图的背景颜色?我是否设置了一个计时器并分配视图的背景颜色属性以循环更改?
如何实现这个功能?
在您的代码中的某处(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];
}
这将是一个突然的变化,因此您可能想要制作动画,但这是一个不同的问题。
听起来您只是希望您的视图每 x 时间更改一次背景颜色。为此,是的,对于有问题的视图,您可以设置一个计时器并在每次触发时更改背景颜色(您可能会随机生成一些 RGB 值)。
您可以使用 + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats 将计时器设置为选择器,在那里您可以更改视图背景...请记住 UIKit 不是线程安全的,因此如果您在另一个线程中运行计时器,您应该更改主线程上的视图背景..