Iphone 每小时重新加载一次视图

Iphone 每小时重新加载一次视图,iphone,view,gradient,reload,hour,Iphone,View,Gradient,Reload,Hour,我有一个代码,它为一天中的每一小时生成不同的渐变视图 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //[self.view setBackgroundColor:[UIColor whiteColor]]; self.navigationController.navigati

我有一个代码,它为一天中的每一小时生成不同的渐变视图

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    //[self.view setBackgroundColor:[UIColor whiteColor]];

    self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

    NSDate *today = [NSDate date];
    NSCalendar *gregorian = [[NSCalendar alloc]
                              initWithCalendarIdentifier:NSGregorianCalendar];

    NSDateComponents *components =
    [gregorian components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:today];

    NSInteger hour = [components hour];

    float dayRed;
    float dayGreen;
    float dayBlue;

    float nightRed;
    float nightGreen;
    float nightBlue;

    BOOL from0to12 = NO;
    BOOL from12to24 = NO;

    if (hour >= 0 && hour <= 12) {
        from0to12 = YES;
    }
    else if (hour > 12 && hour <= 23) {
        from12to24 = YES;
    }

    if (from0to12)
    {
        NSLog(@"%d AM", hour);

        dayRed = 0.0;
        dayGreen = 0.0;
        dayBlue = 1 - (0.083333333333 * hour);

        NSLog(@"%f, %f, %f", dayRed, dayGreen, dayBlue);

        nightRed = 0.083333333333 * hour;
        nightGreen = (0.083333333333 * hour)/2;
        nightBlue = 0;

        NSLog(@"%f, %f, %f", nightRed, nightGreen, nightBlue);
    }
    else if (from12to24)
    {
        NSLog(@"%d AM", hour);

        hour = 24-hour;

        dayRed = 0.083333333333 * hour;
        dayGreen = (0.083333333333 * hour)/2;
        dayBlue = 0;

        NSLog(@"%f, %f, %f", dayRed, dayGreen, dayBlue);

        nightRed = 0;
        nightGreen = 0;
        nightBlue = 1-(0.083333333333 * hour);

        NSLog(@"%f, %f, %f", nightRed, nightGreen, nightBlue);
    }


    UIColor *day = [UIColor colorWithRed:dayRed green:dayGreen blue:dayBlue alpha:1.0];

    UIColor *night = [UIColor colorWithRed:nightRed green:nightGreen blue:nightBlue alpha:1.0];

    GradientView *gradient = [[GradientView alloc] initWithFrame:CGRectMake(0,0,320,50)];
    [gradient setColoursWithCGColors:day.CGColor:night.CGColor];

    self.view = gradient;
}
-(void)viewDidLoad
{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
//[self.view setBackgroundColor:[UIColor-whiteColor]];
self.navigationController.navigationBar.barStyle=UIBarStyleBlack半透明;
NSDate*今天=[NSDate日期];
NSCalendar*格里高利=[[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDATE组件*组件=
[公历成分:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit)from date:today];
NSInteger小时=[组件小时];
浮出白昼;
漂浮在阳光下;
浮蓝;
飘浮夜红;
漂浮的夜绿色;
漂浮夜蓝色;
BOOL从0到12=否;
BOOL从12到24=否;

如果(小时>=0&&hour 12&&hour为每1小时安排一个计时器

-(void)viewDidLoad
{
    [NSTimer scheduledTimerWithTimeInterval:3600 target:self selector:@selector(loadGradient:) userInfo:nil repeats:YES];
}

-(void)loadGradient:(id)sender
{
    // Do your code for effect every 1 hour
}

所以一遍又一遍地调用整个方法是安全的?我认为应该先销毁视图,然后再创建:数据此代码不会在应用程序启动时生成视图,我希望它每整小时更改一次,比如下午1点、下午2点、下午3点。。。