2010-06-30 81 views

回答

1

是的,這是可能的。

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1.0f]; 
[[self view] setBounds:CGRectMake(0.0f, 0.0f, 200.0f, 200.0f)]; 
[UIView commitAnimations]; 

這從它超過1秒的當前邊界爲200×200一個邊界時,將動畫視圖控制器的視圖。它不會改變原點 - 只是邊界矩形的大小。這是隱式動畫的方式。如果你想要一個更復雜的動畫,請看看使用CABasicAnimation和顯式動畫。

+0

謝謝! 這就是我想要做的: 想像一下圖片大小是300 x 300.我希望圖片大小保持不變,但是要爲圖片的100 x 100特定點聚焦動畫。 我搜索了一下,並通過文檔和框架和界限的混淆。 – sooon 2010-06-30 02:00:54

+0

如果您想要更改位置和邊界,您可以分別使用-setCenter:和-setBounds:來設置動畫,或者您可以通過調用-setFrame來爲該幀設置動畫,從而使兩者都具有動畫效果。目前還不清楚你想要什麼。如果您有覆蓋圖像的圖層,則可以按照您所描述的方式對該圖層進行動畫處理以集中注意力。在這種情況下,您需要確保您的焦點圖層具有-setMasksToBounds:設置爲YES。 – 2010-06-30 02:18:04

+0

@MattLong:你能幫我解決我的問題嗎> http://stackoverflow.com/questions/8353284/animate-image-inside-a-smaller-frame-in-ios?這與sooon尋找的東西類似。謝謝。 – neebz 2011-12-02 12:20:23

0

您是否嘗試在圖層內的圖像的可見部分設置動畫,圖層本身是否保持大小和位置?

這就是CAScrollLayer。使用CAScrollLayer代替當前圖層,並將圖像渲染layerl作爲子圖層添加到CAScrollLayer。然後可以使用子圖層的transform屬性來實現該效果。