2012-12-07 46 views
-1

我想知道人們如何實現清晰的UIView的縮放動畫。我注意到網絡上的示例代碼,在視圖中實現清晰的縮放動畫

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,所以如果這個問題是完全錯誤的,我很抱歉!)謝謝。

回答

0

我認爲你的代碼看起來很好(不過,我認爲推薦的動畫方式現在是UIView animate...)。我認爲可能有兩個問題:

  1. 你的圖像是100 x 100,被炸成全屏。這永遠不會看起來不錯。 (如在this answer中進一步討論的)。

  2. 您的比例不會保留(2x1.5幀中的1x1圖像)。

也值得考慮一下你繪製圖像的初始大小。如果您有1000x1000的圖片,以500x500繪製圖片,然後將圖片縮小爲2,看起來不會像第一次以1000x1000繪製圖片那樣好,然後將圖片縮小到500x500,然後將其縮小回來。雖然,UIImageView屬性UIViewContentModeRedraw可能對此有所幫助。

0

你給自己正確答案:

我在想,如果那是因爲UIView的是已經是規模和他們開始了在更小的尺寸,所以當它放大到更大尺寸沒有關係」的視圖不會收到不需要的文物。

你不能縮放低分辨率的圖片,並期待它看起來不錯。有像雙三次插值這樣的可能性避免像素邊框在縮放時被放大,但仍然保持不銳利。無法在沒有信息的地方創建信息。