0

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 の色を変更する方法について、誰かに光を当ててください。

4

0 に答える 0