2016-12-29 6 views
1

У меня есть один UITableView, и я хочу set bouncing only one side top side., но я не мог решить эту проблему. см. ссылку на видео и дайте мне решение для этого. любое предложение ценится и принимается.Tableview подпрыгивая только с одной стороны верхней стороны

Здесь https://www.dropbox.com/s/qztsfkqoxuy4aaj/question.mov?dl=0

Вот моя информация TableView.

+0

подпружиненных сверху и снизу стандартное поведение IOS - предотвращение это может показаться «неправильным» для пользователя. –

+0

, но мне нужен такой поток в проекте, поэтому мне нужно разработать такое приложение. –

+0

@AshleyMills Мне нужно решение для теста, я должен установить все tableview, как это, когда я получил только одну строку, а также. –

ответ

6

Используйте метод scrollViewDidScroll для проверки содержимого смещение Scrollview в Tableview в. проверьте, пытается ли пользователь выполнить прокрутку за пределами нижних границ вида таблицы. если да, прокрутите страницу до конца таблицы. это не будет ограничивать нижний отскок, но будет прокручиваться назад так быстро, что пользователь не увидит нижние отскоки.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
     if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) { 
      [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height)]; 
     } 
    } 

/// UPDATE-- Если размер содержимого Tableview будет меньше его кадра, код выше может не работать. вы можете использовать следующий в этом случае:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 

    if(scrollView.contentSize.height > scrollView.frame.size.height) 
    { 
    if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) { 
     [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height)]; 
    } 
    } 
    else if (scrollView.contentOffset.y >= 0) 
    { 
     [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, 0)]; 
    } 
} 
+0

Позвольте мне попробовать этот. –

+0

Используя этот ответ, если у вас есть только одна строка в таблице, эта строка будет располагаться в нижней части экрана, а метод делегата будет вызываться повторно, так как tableview пытается перевести себя обратно в позицию –

+1

Спасибо, что вы работаете for me –