2016-07-08 9 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 

を、すべてが外に取得する場所これは比率。私は何が起こっているかを示すために2つのスクリーンショットを含めました。親ビューは大きくなり、回転ビューは異常に大きくなります。

enter image description here enter image description here

誰かが私を助けることができると思います。

+0

wrapView.frame = CGRect(x: 0, y: 0, width: wrapDimensions.width, height: wrapDimensions.height)の場所を変更する必要がありますか? –

+0

ええ、それはカスタムUIViewクラスです – Imbue

答えて

1

あなたが本当にそれはそれはスーパーだと、フレームの変更したいん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

関連する問題