2012-07-31 97 views
0

我正在嘗試以下操作:在圖像上縮放動畫

我有一個顯示圖像的視圖。我已經實現了pinchgesturerecognizer來放大/縮小。我如何做動畫並以與用戶放大圖像相同的速度和相同位置的方式完全顯示圖像。例如,如果我放大右上角,圖像應該以右上角以相同速度縮放。

在此先感謝

+0

重放,如同在用戶捏的時候不是_not_?如果是這樣,動畫每一刻的速度或持續時間相同? – 2012-07-31 05:09:23

+0

是,當用戶正在捏時,最好在重放按鈕的敲擊下。速度可以均勻分佈,但持續時間相同。 – nirvana74v 2012-07-31 05:58:51

+0

一旦你能夠記錄用戶捏捏的地方和方式,重播它並不困難。它只是相似,但相反(應用價值,而不是記錄它) – 2012-07-31 06:02:24

回答

0

我曾經也穹頂一些研究對同一種類的要求爲我的項目之一。

我發現/完成的是:我已將圖像視圖添加到滾動視圖。 然後,我已經設置了像max-min zoomScale,frame,delegate,userInteractionEnabled,scrollEnabled等所有滾動視圖屬性。

所以現在你不需要按照捏水平來管理,scrollview本身管理所有的縮放級別和滾動部分。

希望這會幫助你。

享受編碼:)

+0

這個答案不符合我的要求。我需要能夠通過某個功能執行縮放數據,以便視圖中的圖像以與用戶相同的方式放大。 – nirvana74v 2012-07-31 06:40:51

0

您將不得不創建一個錄音系統。當你開始在用戶的繪圖序列

記錄當前時間戳:關閉我的頭頂,你可以做這樣的事情

NSTimeInterval STARTTIME = [NSDate的intervalSinceReferenceDate]

當用戶捏和/或縮放時,記錄從開始時間開始經過的時間以及您所做的更改的時間量。我建議建立一個變更記錄數組,其中每個記錄都有一個經過時間字段和新的縮放比例。

如果您將用戶的更改作爲離散渲染以不同大小繪製,只需記錄並重播每個經過時間和新大小。

如果您在尺寸之間設置動畫,請記錄每個動畫的時間間隔和時間偏移。

然後回放時,您需要遍歷每條記錄並使用計時器performSelector:withObject:afterDelay:或類似的東西在相同的時間間隔內執行相同的更改。