Как показать / скрыть пользовательский вид в зависимости от contentOffset моего табличного представления? - PullRequest
0 голосов
/ 12 февраля 2019

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

Если честно, я борюсь с логикой кнопки показать / скрыть.Попытался сохранить contentOffset.y моего табличного представления сразу после перезагрузки данных, чтобы я знал, что это дно, и если оно меньше, чтобы показать настраиваемое представление, но mainTableView.contentOffset.y это всегда 0.

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    if (scrollView == mainTableView) {
        print(mainTableView.contentOffset.y)
        if let point = startingPointForView {
            //where var startingPointForView: CGFloat?
            // and tried to save it after I reload the data
            //self.startingPointForView = self.mainTableView.contentOffset.y
            // but it's always 0
        }

        // Show and hide button logic

    }
}

Изображение того, чего я пытаюсь достичь: https://imgur.com/ZkYEi2P

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

попробуйте этот код, чтобы скрыть / показать пользовательский вид в соответствии с UIscrollview contentOffset

func scrollViewDidScroll(_ scrollView: UIScrollView) {

        let scrollViewContentHeight = scrollView.contentSize.height
        let scrollViewHeight = scrollView.frame.height

        if scrollView.contentOffset.y < (scrollViewContentHeight - scrollViewHeight){
            //Custom view show
        }else{
            //Custom view Hide
        }
    }
0 голосов
/ 12 февраля 2019

Может быть, этот код поможет вам

func scrollViewDidScroll(_ scrollView: UIScrollView) {

    if scrollView.panGestureRecognizer.translation(in: scrollView).y > 0 {
        // down
        button.isHidden = false
    } else {
        // up
        button.isHidden = true
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...