Я хочу создать нечто похожее на текст Snapchat, чтобы вы могли сжимать, поворачивать и панорамировать.Rotate и Pan прекрасно работают, и я уже нашел решение для Pinch на stackoverflow, которое я уже реализовал.Проблема в том, что если я одновременно поверну, ущипну и сожму, текст по какой-то причине исчезнет.Я добавил две картинки для лучшего представления.
https://ibb.co/6J3s46W
https://ibb.co/L9wQFDP
@objc func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) {
hideKeyboard()
if gestureRecognizer.state == .began || gestureRecognizer.state == .changed {
let translation = gestureRecognizer.translation(in: self.view)
// note: 'view' is optional and need to be unwrapped
gestureRecognizer.view!.center = CGPoint(x: gestureRecognizer.view!.center.x + translation.x, y: gestureRecognizer.view!.center.y + translation.y)
gestureRecognizer.setTranslation(CGPoint.zero, in: self.view)
}
}
@objc func handlePinchGesture(gesture: UIPinchGestureRecognizer) {
hideKeyboard()
view.bringSubviewToFront(applySettings)
view.bringSubviewToFront(edittextButtonOutlet)
guard gesture.view != nil, let view = gesture.view else {return}
currentTouchedTextView = view as! UITextView
if gesture.state == .began {
let font = currentTouchedTextView.font
let pointSize = font!.pointSize
gesture.scale = pointSize * 0.1
size = pointSize * 0.1
}
if 1 <= gesture.scale && gesture.scale <= 10 {
currentTouchedTextView.font = UIFont(name: currentTouchedTextView.font!.fontName, size: gesture.scale * 10)
let textViewSiSize = currentTouchedTextView.intrinsicContentSize
currentTouchedTextView.bounds.size = CGSize(width: textViewSiSize.width, height: textViewSiSize.height)
}
}
@objc func handleRotate(recognizer : UIRotationGestureRecognizer) {
hideKeyboard()
if let view = recognizer.view {
view.transform = view.transform.rotated(by: recognizer.rotation)
recognizer.rotation = 0
}
}