我正在使用Xcode和Objective C开发一个iPhone应用程序。
我想要实现的是根据一天中的时间更改不同标签的背景颜色。
我在XIB文件中设置了几个UILabel并设置了它们的背景颜色。在我的.m文件中,然后我设置了一个每3秒运行一次的动作。一段代码:
- (void)updateTime
{
NSDate *currentTime = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HHmm"];
NSString *resultTime = [dateFormatter stringFromDate: currentTime];
if([resultTime compare:@"0819"] == NSOrderedDescending)
{ //IF THE TIME IS AFTER 0820AM
if([resultTime compare:@"0850"] == NSOrderedAscending)
{ // IF THE TIME IS BEFORE 0850AM
labelOne.backgroundColor = [[UIColor alloc] initWithRed:160 green:160
blue:160 alpha:1.0];
}
}
if([resultTime compare:@"0849"] == NSOrderedDescending)
{
if([resultTime compare:@"0945"] == NSOrderedAscending)
{
labelTwo.backgroundColor = [[UIColor alloc] initWithRed:160 green:160
blue:160 alpha:1.0];
}
}
这似乎适用于更改背景颜色,但是,当if语句意味着返回false(它不在该时间段内)时,背景颜色不会更改回XIB文件中的颜色。
有人可以说明如何在一段时间内让不同的UILabel改变颜色。