頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


Core Graphicsでアナログ時計を作ってみる(7)秒針を回転させる

タイマー機能を使うのですが、
iPhoneアプリを作ってみよう:目次エントリー - もとまか日記
ここのタイマーアプリが大変参考になります(ってかほとんどそのまま)。

ClockViewController.mのviewDidLoad:メソッド内にタイマー関連の設定をします。
timer = [NSTimer scheduledTimerWithTimeInterval:(1.00) target:self selector:@selector(onTimer:) userInfo:nil repeats:YES];
    [timer fire];
1秒ごとにonTimer:を処理してね、って記述です。

fireメソッドはこのonTimer:をすぐに呼び出してくれるのです。
これがないと、アプリ起動時に秒針が0秒のところを指した画像(つまり秒針作成時の画像)が表示され、次の瞬間に現在時刻に従った表示になり、不連続な表示になってしまうからです。
これを入れることで現在時刻の秒が30秒なら秒針は下を向いたのがアプリ起動時にちゃんと表示してくれます。

なお、このtimerって変数もClockViewController.mの先頭付近に
NSTimer *timer;
と宣言してます。

以下は1秒ごとにCALLされる部分です。
- (void)onTimer:(NSTimer*)timer {
    NSDate *now = [[NSDate alloc] init ];//現在時刻取得用オブジェクト

    // フォーマットの定義
    NSDateFormatter *formatter_s = [[NSDateFormatter alloc] init];
    [formatter_s setDateFormat:@"ss"];//フォーマット設定
    NSString *now_s = [formatter_s stringFromDate:now];//秒数を文字列で取得
   
    //NSSTring型をInt型に 
    int sInt = [now_s intValue];
   
    //秒針の角度を計算する
    float sRad = M_PI/30*sInt;
    secondHand.transform = CGAffineTransformMakeRotation(sRad);

    [formatter_s release];
    [now release];
}
このようにすることで、Viewを回転させることができます。
うーん、便利。
案外いけるじゃないか、Core Graphics&UIView!

ってことで、当分 OpenGLではなく、Core GraphicsとUIViewを使っていこうかと思います。

分針、時針は同じようなものだろうから、、、もういいや(笑)。
ということで、アナログ時計に関してはこれでおしまいです。


関連ページ
頭と尻尾はくれてやる! Core Graphicsでアナログ時計を作ってみる(1)はじめに
頭と尻尾はくれてやる! Core Graphicsでアナログ時計を作ってみる(2)全体の構成
頭と尻尾はくれてやる! Core Graphicsでアナログ時計を作ってみる(3)背景をつくる
頭と尻尾はくれてやる! Core Graphicsでアナログ時計を作ってみる(4)背景のオブジェクトを生成する
頭と尻尾はくれてやる! Core Graphicsでアナログ時計を作ってみる(5)ビューコントローラーのオブジェクト生成
頭と尻尾はくれてやる! Core Graphicsでアナログ時計を作ってみる(6)秒針を作る

<< 初めて買った有料アプリはStar Walk  TopPage  Core Graphicsでアナログ時計を作ってみる(6)秒針を作る >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/388-585c8be7




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad