2010-05-29 33 views
5

我想動畫縮放UIView的縮放,而不是關於其中心:關於不同的點。iPhone:對特定點進行縮放UIView

作爲一個黑暗中的鏡頭,我試着翻譯視圖,縮放,然後翻譯回來,使用一系列CGAffineTransforms。但它不起作用:它仍然圍繞着中心擴展。

任何人都知道如何做到這一點?

非常感謝。

回答

12

添加Quartz框架到您的項目和進口石英頭

#import <QuartzCore/QuartzCore.h> 

然後,您可以設置你的看法(圍繞動畫爲主)的錨點例如

myView.layer.anchorPoint = CGPointMake(0, 0); 

注意的點是0和1之間的值,與0,0被頂留在iPhone

+1

請考慮將其標記我的響應,回答,如果它是有幫助的。 – RunLoop 2010-06-01 08:36:41

+2

非常感謝;這確實有效。但是有一個後續問題:我沒有說的是我使用縮放來實現「反彈」效果。所討論的視圖縮小了一些,然後再擴大到正常大小。使用「anchorPoint」方法適當縮小視圖,但是當我再次增大視圖(使用單位矩陣進行轉換)時,整個視圖已經移動(翻譯)了一些。有沒有一種方法可以讓視圖以可重複的,與anchorPoint無關的方式恢復到其原始位置?謝謝! – 2010-06-01 18:33:03

+0

可能更簡單的是簡單地設置視圖的框架的起源和大小,以反映您的結束點和起點,並將其包含在動畫中。我發現這是一個更簡單的方法。 – RunLoop 2010-06-01 21:05:31