【发布时间】:2016-11-10 16:59:30
【问题描述】:
我有一个旋转盒子的功能,效果很好。当用户完成旋转时,我想将父视图适合旋转框,但它完全不成比例,我不知道为什么,因为我只是在旋转视图和父视图之间交换尺寸和属性.
旋转:
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
这就是一切不成比例的地方。我已经包含了两个屏幕截图来显示发生了什么。父视图变大,旋转后的视图变得异常大。
希望有人可以帮助我。
【问题讨论】:
-
你真的想用它的超级视图来改变它的框架吗?
-
是的,它是一个自定义 UIView 类
标签: ios swift core-graphics core-animation