Изменить размер повернутой рамки UIView, перетаскивая угол - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть вид и кнопка в правом нижнем углу. Используя кнопку изменения размера 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)))
}

Но это не имело значения в лучшую сторону ..

...