【发布时间】:2010-12-06 16:10:14
【问题描述】:
如何动态改变视图的背景颜色?我是否设置了一个计时器并分配视图的背景颜色属性以循环更改?
如何实现这个功能?
【问题讨论】:
标签: iphone objective-c uiview background-color
如何动态改变视图的背景颜色?我是否设置了一个计时器并分配视图的背景颜色属性以循环更改?
如何实现这个功能?
【问题讨论】:
标签: iphone objective-c uiview background-color
代码中的某处(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 不是线程安全的,因此如果您在另一个线程中运行计时器,您应该更改主线程上的视图背景..
【讨论】: