9VAeきゅうべえをiPadに移植する為に、タイマー描画させる必要があるが、その方法がわからなかった。 以下の記事が参考になりそうだ。
https://ja.stackoverflow.com/questions/34903/アナログ時計が毎秒ごとに更新されない
キーワードは、「self.clockView.setNeedsDisplay()」これで、画面の再描画を行う。画面の書き直しが行われたら、コンテスキストを取得して、そこに、9VAeきゅうべえの描画を行う。
なるほど。
と思ったが、うまく行かず! タイマーで SetNeedsDisplay を呼ぶと、1回目はちゃんと書くが、2回目から書かない。 下の記事を調査
なんか、わかってきたような気がするぞ。まず、次の2つがある。
- UIView
- UIViewController
SetNeedsDisplay は、UIViewController のメソッドで、UIViewを表示させる。 この時、viewWillAppearが、1回呼ばれるが、これは最初に表示するときしか呼ばれない。 だから、viewWillAppearの中に、9VAeの描画を入れてもだめ。
そのあと、毎回、再描画しているかもしれないが、それは、UIView drawRect が呼ばれている。 この中に、9VAeの描画を入れるには、カスタム UIViewを作らないといけない。
UIViewController の中にタッチイベント処理があるので、UIViewControllerだけで処理できると簡単。
サンプルでは、UIViewとしてMainとTempの2つの画像を使っており、カスタムViewは使っていない。
Tempの画像を毎回作成すれば、viewWillAppearが毎回呼ばれるのではないか? と思ったが、うまく行かず。カスタムViewを作るしかないか・・・