通过拖动角来调整旋转的UIView框架的大小

时间:2018-09-02 17:13:19

标签: ios swift uigesturerecognizer uipangesturerecognizer cgaffinetransform

我在右下角有一个视图和一个按钮。使用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)))
}

但这对更好的一面没有影响。

0 个答案:

没有答案