我在右下角有一个视图和一个按钮。使用UIPanGesture调整大小按钮,我可以像这样更改帧:(并且当该视图没有旋转变换时,它可以正常工作)
let translation = sender.translation(in: self.collectionView)
item.transform = .identity
var newFrame = item.frame
newFrame.size.width = newFrame.size.width + translation.x
newFrame.size.height = newFrame.size.height + translation.y
item.frame = newFrame
item.transform = CGAffineTransform(rotationAngle: CGFloat(rotationAngle))
sender.setTranslation(.zero, in: self.collectionView)
所以我认为平移点本身必须旋转,我尝试了上面的代码
func rotatePointAboutOrigin(point : CGPoint, rad : Float) -> CGPoint {
let angle = rad * (180.0 / .pi)
let s = CGFloat(sinf(angle))
let c = CGFloat(cosf(angle))
return CGPoint(x: c * (point.x) - s * (point.y), y: (s * (point.x) + c * (point.y)))
}
但这对更好的一面没有影响。