2013-05-08 51 views
0

我的應用程序中有兩個視圖viewA(綠色)和subviewB(紅色)。我的應用程序的初始狀態是如下: enter image description here如何在縮放後將視圖位置重置爲原點

我使用下面的代碼來改變變換viewA的:

CGFloat scale = 0.4; 
self.viewA.layer.sublayerTransform = CATransform3DMakeScale(scale, scale, 1); 

作爲結果,subviewB被縮放和平移

enter image description here

但我的應用程序有一個問題:我需要subViewB仍然在viewA的左上角,但subviewB是看着移動到viewA的中心,這很奇怪,子視圖B的原點仍然是(0,0),我可以如何將子視圖B移動到左上角?

+0

您是否需要使用CATransform3DMakeScale?如果沒有,那麼試試這個:'self.viewA.transition = CGAffineTransformMakeScale(scale,scale);' – 2013-05-08 09:28:06

+0

你的意思是self.viewA.transform?我必須縮放viewA的子視圖,但不應縮放viewA。儘管我可以縮放viewA,但viewA的位置在使用CGAffineTransformMakeScale後仍然會發生變化 – NOrder 2013-05-08 09:37:07

+0

試圖找到解決方案,但無法運行動畫.. :( – rptwsthi 2013-05-08 10:06:09

回答

1

剛剛嘗試給出的代碼,

subviewB.transform = CGAffineTransformScale(test.transform, scale, scale); 

將工作:)

+0

我使用此方法用於我的應用程序,謝謝 – NOrder 2013-05-08 10:45:20

0

我得到了同樣的問題,縮放和經銷商的佈局,但在一個UIScrollView。我最終使用CATransform3DMakeScale來解決所有問題。

https://github.com/hansdesmedt/AutoLayout-scrollview-scale

這與自定義分頁的UIScrollView的在自動版式完全由的一個例子,是可擴展的(CATransform3DMakeScale)與長按和自來水進行放大。 iOS 6和7兼容。

相關問題