我有一个旋转盒子的功能,工作正常。当用户完成旋转时,我想让父视图适合旋转的框,但它只是完全超出比例,我无法弄清楚为什么,因为我只是交换旋转视图和旋转视图之间的尺寸和属性父母观点。
旋转:
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
这就是一切都不合适的地方。我已经包含两个屏幕截图来显示最新情况。父视图变大,旋转的视图变得异常大。
希望有人可以帮助我。
答案 0 :(得分: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