UITextView Pinch, Поворот и Панорамирование.Как я могу это сделать? - PullRequest
0 голосов
/ 24 сентября 2019

Я хочу создать нечто похожее на текст 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
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...