removeFromSubView отключает взаимодействие - PullRequest
0 голосов
/ 07 июня 2019

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


///
ChatLogMessageCell.swift


/**
*
* I add the target to the UIButton with an image as a background
*/

messageImage.addTarget(self, action: #selector(fullscreenImage), for: .touchUpInside)

/*
* Full screen code
*/
@objc func fullscreenImage() {

    if let chatlog = parentViewController as? ChatLogController {
        let imageScroll = UIScrollView()
        imageScroll.delegate = self
        imageScroll.minimumZoomScale = 1.0
        imageScroll.maximumZoomScale = 5.0
        imageScroll.frame = UIScreen.main.bounds

        let newImageView = UIImageView(image: messageImage.backgroundImage(for: .normal))
        newImageView.frame = UIScreen.main.bounds
        newImageView.backgroundColor = .black
        newImageView.contentMode = .scaleAspectFit
        newImageView.isUserInteractionEnabled = true
        imageScroll.addSubview(newImageView)

        chatlog.view.addSubview(imageScroll)
        chatlog.navigationController?.isNavigationBarHidden = true
        chatlog.tabBarController?.tabBar.isHidden = true
        let tap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage))
            newImageView.addGestureRecognizer(tap)
    }

}

@objc func dismissFullscreenImage(_ sender: UITapGestureRecognizer) {
        if let chatlog = parentViewController as? ChatLogController {
            chatlog.navigationController?.isNavigationBarHidden = false
            chatlog.tabBarController?.tabBar.isHidden = false
            sender.view?.removeFromSuperview()
        }
    }

Когда полноэкранное изображение удалено, ChatLogController больше не взаимодействует.Я не могу прокрутить или снова войти в полноэкранный режим изображения. Что мне здесь не хватает?Я просто хочу отклонить полноэкранное изображение и позволить пользователю выбрать другое изображение или просто просмотреть сообщения.

1 Ответ

1 голос
/ 07 июня 2019

Здесь вы удаляете imageView

sender.view?.removeFromSuperview()

, в то время как вам нужно удалить scrollView как

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