我有兩個圖像,一個用於上午,我需要在上午6點之後顯示,另一個用於晚上,我需要在晚上6點之後在後臺顯示。請幫助我在上午6點至下午6點以及下午6點至上午6點自動更換顯示屏。在上午6點和下午6點更改一次背景圖像
NSDate *_currentDate = [NSDate date];
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];
[_dateFormatter setDateFormat:@"yyyy-MM-dd' 06:00AM +0000'"]; // set the morning date here
NSString *_morningDateString = [_dateFormatter stringFromDate:_currentDate];
[_dateFormatter setDateFormat:@"yyyy-MM-dd' 06:00PM +0000'"]; // set the evening date here
NSString *_eveningDateString = [_dateFormatter stringFromDate:_currentDate];
[_dateFormatter setDateFormat:@"yyyy-MM-dd hh:mma zzz"];
NSDate *_morningDate = [_dateFormatter dateFromString:_morningDateString];
NSDate *_eveningDate = [_dateFormatter dateFromString:_eveningDateString];
NSTimeInterval _intervalToMorningDate = [_morningDate timeIntervalSinceDate:_currentDate];
NSTimeInterval _intervalToEveningDate = [_eveningDate timeIntervalSinceDate:_currentDate];
if (_intervalToMorningDate > 0) {
// now it is night
self.bgImage.image = [UIImage imageNamed:@"main_bg.png"];
[self performSelector:@selector(replaceTheBackgoundForMorning) withObject:nil afterDelay:_intervalToMorningDate];
} else {
// now it is daytime
self.bgImage.image = [UIImage imageNamed:@"daylight.png"];
[self performSelector:@selector(replaceTheBackgoundForEvening) withObject:nil afterDelay:_intervalToEveningDate];
}
-(void)replaceTheBackgoundForMorning {
// reaplce the backgound here
self.bgImage.image = [UIImage imageNamed:@"daylight.png"];
}
- (void)replaceTheBackgoundForEvening {
// reaplce the backgoung here
self.bgImage.image = [UIImage imageNamed:@"main_bg.png"];
}
這似乎太複雜。只需創建一個NSTimer,每分鐘滴答滴答,並在計時器處理程序中查看當前小時並設置適當的圖像 – Paulw11