我正在用 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 改变颜色。