-1

鮮明なUIViewのズームアニメーションを人々がどのように実現するのか疑問に思いました。Webのサンプルコードで気づきましたが、

self.frame = CGRectMake(0.0f, 0.0f, 200.0f, 150.0f);
[UIView beginAnimations:@"Zoom" context:NULL];
[UIView setAnimationDuration:0.5];
self.frame = CGRectMake(0.0f, 0.0f, 1024.0f, 768.0f);
[UIView commitAnimations];

基本的にはフレームを変更するだけです。100 x 100の画像でこれを行うと、画像は鮮明に見えません。ズームでUIViewを鮮明にする方法があるかどうか疑問に思いました。cocos2dトランジションを見ると、ズームのシーントランジションにアーティファクトがないようです。すべてが鮮明に見えます!UIViewはすでにそのサイズであり、小さいサイズでビューを開始するため、大きいサイズにズームしても不要なアーティファクトが発生しないためだと思いました。または、openglで何かを行う場合や、鮮明に見えるようにするための何かがある場合。(私はopenglを知らないので、その質問が完全に間違っている場合はお詫びします!)ありがとう。

4

2 に答える 2

1

私はあなたのコードがうまく見えると思います(しかし、私はアニメーション化するための推奨される方法は今だと思いますUIView animate...)。私は2つの問題があるかもしれないと思います:

  1. 画像は100x100で、フルスクリーンに拡大されています。これは決して見栄えが良くなりません。(この回答でさらに説明されています)。

  2. 比率は保持されません(2x1.5フレームに1x1の画像)。

また、画像を描画する初期サイズについても検討する価値があります。1000x1000の画像がある場合、500x500で描画してから2倍に拡大縮小すると、最初に1000x1000で描画し、500x500に縮小してから、拡大縮小する場合ほど見栄えが悪くなります。ただし、ここではUIImageViewプロパティUIViewContentModeRedrawが役立つ場合があります。

于 2012-12-07T02:56:05.743 に答える
0

あなたは自分自身に正しい答えを与えました:

UIViewはすでにそのサイズであり、小さいサイズでビューを開始するため、大きいサイズにズームしても不要なアーティファクトが発生しないためだと思いました。

低解像度の写真をズームすることはできず、見栄えがよいと期待できます。ピクセルの境界がズームで拡大されることを回避するバイキュービック補間のようないくつかの可能性がありますが、それでもシャープではありません。何もないところに情報を作ることはできません。

于 2012-12-07T02:54:13.247 に答える