Xcode と Objective C で iPhone アプリケーションを開発しています。
私が達成しようとしているのは、時刻に基づいてさまざまなラベルの背景色を変更することです。
XIB ファイルにいくつかの UILabels を設定し、それらの背景色を設定します。私の .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 ファイルにあるものに戻りません。
特定の期間内にさまざまな UILabels の色を変更する方法について、誰かに光を当ててください。