Как переместить рамку scrollview вверх перед прокруткой contentView? (когда scrollView начинается в середине экрана)

Мой scrollview находится в центре экрана по вертикали, а view1 находится над ним, при y = 0.

Когда я прокручиваю вниз, view1 увеличивается (это нормально работает, создает увеличение). Когда я прокручиваю вверх, я хотел бы переместить scrollView в верхнюю часть экрана (y = 0) и только там начать обычную прокрутку, чтобы показать остальную часть contentView. Таким образом, contentView не должен прокручиваться, пока мы не достигнем y = 0.

Как я мог это сделать?
Проблема в том, что если я прокручиваю вверх, прокручивается contentView. Поэтому я не вижу, как проверить contentView, потому что фрейм поднимется, но одновременно с этим и contentView.

Вот мой способ прокрутки:

func scrollViewDidScroll(scrollView: UIScrollView) {
    if scrollView.contentOffset.y > 0 && scrollView.frame.origin.y > 0 {
        //goes up before we scroll contentView
        scrollView.frame = CGRectOffset(scrollView.frame, 0, ........ ) //HERE
    }

    //enlarge view
    else if scrollView.contentOffset.y < 0 { //... }

person Paul    schedule 05.03.2015    source источник


Ответы (1)


Возможный подход - просто «сбросить» значение contentOffset.y для scrollview каждый раз, когда он перетаскивается, а ваш фрейм еще не расположен вверху. Просто попробуйте установить scrollView.contentOffset = CGPointZero в первом предложении if.

Надеюсь это поможет!

person croX    schedule 05.03.2015
comment
Спасибо, я думал, что это отменит, но это не так, это правильное решение, спасибо за ваш ответ - person Paul; 06.03.2015