【问题标题】:How to change the background color of any view dynamically?如何动态更改任何视图的背景颜色?
【发布时间】:2010-12-06 16:10:14
【问题描述】:

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

如何实现这个功能?

【问题讨论】:

    标签: iphone objective-c uiview background-color


    【解决方案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];
    }
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-09-26
        • 2018-02-04
        • 1970-01-01
        • 1970-01-01
        • 2013-07-11
        • 2015-12-17
        • 1970-01-01
        • 2019-10-19
        • 1970-01-01
        相关资源
        最近更新 更多