UITapGesture, чтобы сделать просмотр в полноэкранном режиме не задним ходом - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть textView, который я хотел бы сделать полноэкранным при нажатии, а затем вернуться к исходному размеру, если снова нажать.Я могу получить его на весь экран, но не вернуться к исходному размеру.

Вот что у меня есть - вы можете помочь мне понять, почему это не работает?

let viewWidth = view.frame.width
let viewHeight = view.frame.height
let textViewWidth = textView.frame.width
let textViewHeight = textView.frame.height
if sender.state == .ended {
    let animator = UIViewPropertyAnimator(duration: 0.5, curve: .easeInOut, animations: {
        sender.view!.frame = CGRect(x: 0, y: 0, width: viewWidth, height: viewHeight)
    })
    animator.startAnimation()
} else if sender.state == .began {
    let animator = UIViewPropertyAnimator(duration: 0.5, curve: .easeInOut, animations: {
    sender.view!.frame = CGRect(x: 0, y: 0, width: textViewWidth, height: textViewHeight)
    })
        animator.startAnimation()
}

Обновлено в соответствии с рекомендациями:

    var textViewHeight = Int()
    var textViewWidth = Int()

//Mark: - Get initial value of textViewWidth and Height
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        let widthOfTextView = textView.frame.width
        textViewWidth = Int(widthOfTextView) 
        let heightOfTextView = textView.frame.height
        textViewHeight = Int(heightOfTextView) 
    }

//Mark: - UITapGestureRecognized for hiding Toolbar, Status&Navigation Bar, slider
    @objc func textViewTapped(_ sender: UITapGestureRecognizer) {
        toolbar.isHidden = toolbar.isHidden ? false : true
        textSlider.isHidden = textSlider.isHidden ? false : true
        navigationController!.setNavigationBarHidden(!isHidden, animated: false)
        isHidden = navigationController!.isNavigationBarHidden
        self.setNeedsStatusBarAppearanceUpdate()

        let viewWidth = view.frame.width
    let viewHeight = view.frame.height
    //let textViewWidth = textView.frame.width
    //let textViewHeight = textView.frame.height
    if textView.frame.width == view.frame.width {
        // text view is full size, animate back to normal size
        let animator = UIViewPropertyAnimator(duration: 0.5, curve: .easeInOut, animations: {
            sender.view!.frame = CGRect(x: 0, y: 0, width: self.textViewWidth, height: self.textViewHeight)
        })
        animator.startAnimation()
    } else {
        // text view is normal size, animate to full size
        let animator = UIViewPropertyAnimator(duration: 0.5, curve: .easeInOut, animations: {
            sender.view!.frame = CGRect(x: 0, y: 0, width: viewWidth, height: viewHeight)
        })
        animator.startAnimation()
    }
}

Вот скриншот того, что происходит.После того, как я верну textView обратно к его первоначальному размеру, он окажется выше своего исходного положения - https://imgur.com/a/7Uvylih

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...