2016-07-08 96 views
0

我有一個旋轉框的功能,可以正常工作。當用戶完成旋轉時,我想將父視圖放到旋轉的框中,但它只是完全不成比例,我不知道爲什麼,因爲我只是在旋轉後的視圖和父視圖之間交換了尺寸和屬性。變換使尺寸不同

旋轉:

func rotateThisView(gesture : UIRotationGestureRecognizer){ 
    if activated { 
     if gesture.state == .Began || gesture.state == .Changed { 
      wrapView.transform = CGAffineTransformRotate(wrapView.transform, gesture.rotation) 
      gesture.rotation = 0 
     } 
    } 
} 

如說這工作得很好,但是當用戶完成編輯(旋轉)我運行這個功能:

wrapPoints = wrapView.center 
    wrapDimensions = wrapView.frame 
    wrapRotation = wrapView.transform 

    print(wrapPoints, wrapDimensions, wrapRotation) 
    wrapView.frame = CGRect(x: 0, y: 0, width: wrapDimensions.width, height: wrapDimensions.height) 
    wrapView.transform = CGAffineTransformIdentity 
    wrapView.center = center 

    frame = CGRect(x: 0, y: 0, width: wrapDimensions.width, height: wrapDimensions.height) 
    center = wrapPoints 
    transform = wrapRotation 

而這正是一切失控的比例。我已經包含了兩個截圖來展示最新進展。父視圖變大,旋轉的視圖變得異常大。

enter image description here enter image description here

希望有人能幫助我。

+0

你真的想改變它的框架與它的上海華? –

+0

是的,這是一個自定義的UIView類 – Imbue

回答

1

你應該改變的wrapView.frame = CGRect(x: 0, y: 0, width: wrapDimensions.width, height: wrapDimensions.height)的地方與wrapView.transform = CGAffineTransformIdentity的地方

  wrapView.transform = CGAffineTransformIdentity 
      wrapView.frame = CGRect(x: 0, y: 0, width: wrapDimensions.width, height: wrapDimensions.height) 
      wrapView.center = center 
+0

不幸的是沒有區別 – Imbue

+1

你能提供一個示例項目嗎?我們需要更多的信息來幫助你 –

+0

我不能遺憾。我通過圍繞旋轉視圖和設置網站來解決這個問題。它看起來相當笨拙,但它起作用。儘管如此,我仍然希望看到如何解決這個問題 – Imbue