1

私の質問は、最も簡単に言えば、UIView のコンテンツを更新/変更/アニメーション化できますか? ビューの遷移中にそれらの変更を表示できますか? もしそうなら、どうすればこれを機能させることができますか?

iOS アプリの起動時に作成される繰り返し NSTimer を使用して簡単なテストを行いました。およそ 0.05 秒ごとにカウンターをインクリメントし、インクリメントされたカウントを Interface Builder (IB) の UIView に配置された UILabel に表示します。

以下で言及する状況を除いて、NSTimer の精度などの許容範囲内で十分と思われる速度でコンテンツが iPhone 画面上で継続的に更新されます (概念のテストにすぎません)。

したがって、問題は次のとおりです。アプリケーションの起動遷移が発生したときに、UILabel のコンテンツが更新されません。(私の UIView が画面からはみ出し、拡大して画面全体を占めるように見える最初のもの。)

その遷移が完了すると、UILabel のコンテンツは、NSTimer がバックグラウンドでトリガーされるため、合理的なカウントのように見えるものに「ジャンプ」します...唯一のことは、遷移中にコンテンツが再描画されていないことです。私は次の行に沿って何かを試しました: [myLabel setNeedsDisplay]; 各インクリメントとラベルの内容が更新された後、何もしません。問題はUIViewまたはUIViewControllerのレベルにあると思いますか??

ここで私の用語がひどい場合はお詫びします。できれば簡単な解決策があることを願っています。

また、コードを投稿することもできましたが、それが何であるかを想像するのは困難です。アプリの起動遷移アニメーションは、私たちがトリガーまたは制御するものではありません...そして、遷移中に満足に起動する唯一の他のコードはNSTimerです-それは本当に再描画されていないUIViewコンテンツですか?

ああ、もう1つの考え:遷移中にバターのように滑らかなUIViewの再描画を必ず​​しも期待しているわけではありませんが、これが機能することがわかったら、最終的に何を試してみたいかを考えています...トランジションは十分に見栄えがします。遷移の最後に「ポップ」のように見えるものよりもはるかに優れていることは確かです。

4

2 に答える 2

0

ビューが画面に拡大するように見える最初の Vie は、起動イメージです。pngなのでアニメーションはできません。その画像以外は、アプリの読み込みが完了するまで画面に何も更新されません。

于 2012-10-19T19:46:26.803 に答える
0

「アプリの起動遷移アニメーションは、トリガーまたは制御するものではありません」とはどういう意味かわかりません。default.png から rootViewController への移行について話しているのですか?

いずれにせよ、アニメーションが発生すると、ラベルが更新されている実際のレイヤーではなく、実際には新しい「プレゼンテーションレイヤー」であるため、アニメーション中にラベルが更新されていないと思います。ビューで setNeedsDisplay を呼び出してみてください。それは何もしないかもしれませんが、プレゼンテーション層のドキュメントをチェックしてください。解決策が見つかるかもしれません: 「CALayer、presentationLayer」

于 2012-10-19T17:15:24.833 に答える