私は、うまく動作するボックスを回転させる機能を持っています。ユーザーが回転したら、親ビューを回転ボックスに合わせたいが、回転ビューと親ビューの間で次元とプロパティを交換するだけで。トランスフォームのサイズが異なる
回転:
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つのスクリーンショットを含めました。親ビューは大きくなり、回転ビューは異常に大きくなります。
誰かが私を助けることができると思います。
で
wrapView.frame = CGRect(x: 0, y: 0, width: wrapDimensions.width, height: wrapDimensions.height)
の場所を変更する必要がありますか? –ええ、それはカスタムUIViewクラスです – Imbue