• 締切済み

xcodeについて

xcodeのコードで悩みを抱える者です。 時間帯で画像を変える様ににしたいのですが、どのような方法があるか教えてください!! NStimerを使えばいいのか?もしそうならばその後どの様にコーディングするのか教えてください。よろしくお願いします。

みんなの回答

noname#177743
noname#177743
回答No.1

そうですね、NSTimerを使い、定期的に処理を実行させるのが一般的でしょう。その際に現在の日時を求め、その値をもとに表示するイメージを変更します。NSTimerはこう呼び出します。 NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:呼び出し間隔 target:ターゲットとなるオブジェクト selector:@selector(実行するセレクタ) userInfo:受け渡す値 repeats:YES]; NSTimerを使うには、まずタイマーで実行するための処理をまとめたクラスを定義し、そのインスタンスをtarget:に、呼び出すメソッドのセレクタをselector:に指定します。この呼び出すメソッド内に、時間をチェックしてイメージを切り替える処理を用意します。現在の時刻はNSDateで取得し、NSCalendarとNSCalendarUnitを使ってNSDateComponentsを取得するのが一番応用しやすいでしょう。 NSDate* date = [NSDate date]; // 現在の日時を得る NSCalendar* calendar = [NSCalendar currentCalendar]; // カレントカレンダー取得 NSCalendarUnit unit = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; //時分秒を指定 NSDateComponents* dc = [calendar components:unit fromDate:date]; //[dc hour],[dc minute],[dc second] で時分秒が得られる イメージの切り替えは、どうやってイメージを表示しているかわかりませんが、例えばUIImageViewに表示しているならこんな感じでしょう。 UIImage*image = [[UIImage alloc] initWithContentsOfFile: イメージファイルのパス]; imageview.image = image; // imageview = 表示するUIImageView [image release];

greengiraffe
質問者

補足

イメージの切り替えアニメーションを使ってコーディングしましたが、、 違う方法もあれば教えてください! また、これだとNStimerは時刻を取得してその時間からタイマーが発動しますよね! 時間を12時きっかりにこの画像、13時ならこの画像ときりかえたいのですが、よろしければ教えていただけませんか?

関連するQ&A