• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[Objective-C]アニメーション)

[Objective-C]アニメーション

このQ&Aのポイント
  • Xcode 4.5.2を使用して、Objective-CでiPhoneアプリの開発を行っています。UIViewのsubViewに配置されたUIButtonをアニメーションさせる方法について教えてください。
  • UIButtonのタップイベントがアニメーション実行中に受け付けられない問題が発生しています。UIViewの「animateWithDuration:delay:options:animations:completion:」メソッドの「option:」に「UIViewAnimationOptionAllowUserInteraction」を指定しても解決しませんでした。
  • 原因が分かる方はいらっしゃいますか?初歩的な質問で申し訳ありませんが、ご教示いただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

UIViewのアニメーションは、そういうものです。多くを望んではいけません。そんな程度のものと割り切ることが必要です。 そもそも、ページが左右、あるいは上下にスライドするようにして変わる、紙でできた本のページをめくるようにして、ページが移動する、ボタンがじわっと出現する効果で、いかにもユーザに押したくなる心理にさせる、そういう効果をねらったものですから、アニメーションの時間に5秒をかけること自体、想定外です。 アニメーションはGPUに処理させているのですが、負担を軽減するために、粗い解像度の画像を使って、アニメーションします。なので、アニメーションする画像の上にあるボタンは、ほんとうのボタンではありません。アニメーションを開始する直前に、ボタンを含む画像を生成し、それをアニメーションさせて、アニメーションを終了したら、元の(移動した後の)画面に入れ替えるという処理を行っています。 移動するボタンを押したければ、UIViewのアニメーションや、Core Animationのアニメーションではなく、NSTimerを駆使して、オブジェクトを移動させる、腕に自信があるなら、OpenGLや、NSThreadを活用するなどの手段をお考えください。

hoppemaru
質問者

お礼

ご回答いただき、ありがとうございます。 アニメーションとは、そういうものなのですね。 そういう仕組みでアニメーションが実行されているということを初めて知りました。 ご教授いただいた他の方法で実現できるよう、考えてみます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう