2014-06-18 51 views
1

我遇到了一個問題,它導致我頭痛,並希望有人能幫助我。在平移/調整大小/旋轉後在UIImageView上重新創建相同的轉換

我有一個UIView與兒童UIImageView呈現在上面,包含圖像。

使用手勢,我可以平移,縮放和旋轉該圖像。在此過程中,定位點可能會發生變化,以確保縮放/旋轉是手勢的兩個手指之間的點。 CGAffineTransforms被用來實現這一點,它運作良好。

我的問題是當我銷燬並重新創建封閉視圖控制器時存儲和重新創建轉換。

當我離開這個觀點,我存儲變換和幀...

-(CGAffineTransform)imageViewTransform 
{ 
    return self.testImageView.transform; 
} 

-(CGRect)imageViewFrame 
{ 
    return self.testImageView.frame; 
} 

....當我重新創建視圖我設定的框架和我的ImageView的變換...

self.imageView.transform = mySavedTransform; 
self.imageView.frame = mySavedFrame; 

這工作,我可以移動和拉伸我的形象,然後重新創建下一次。

但是,如果我旋轉我的形象,以正確的角度重新創建的圖像幀,但被拉伸,而不是在原始座標,所以我沒有得到完全保存的內容。

在轉換之前設置框架對旋轉具有相同的不良效果。

我的問題是爲什麼我不能使用上述技術重新創建精確縮放,旋轉和定位的UIImageView?

當然,重現幀和變換會產生預期的效果嗎?

這是做這件事的常用方法,還是我錯過了什麼?

任何幫助表示讚賞。

回答

1

對於這些興趣,這是排序。

問題是沒有存儲的定位點,以及使用該中心重新創建圖像。因此,要忠實地再現轉換,看起來您需要存儲中心,轉換和錨定。

HTH