2012-06-06 2 views
0

У меня есть табличное представление, и в качестве заголовка я использую среди прочего scrollview. Все работает нормально с точки зрения прокрутки, кроме того, что когда я прокручиваю (вверх или вверх) таблицу, прокрутка просматривает «теряет» координаты x, y.UIScrollView внутри UITableView

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

В любом случае, чтобы «сохранить» значение scrollOffset.x, когда я просматриваю табличное представление?

благодаря

+0

Как раз в примечании, я считаю, что перенос прокрутки в представления прокрутки или объекты, относящиеся к прокруткам подкласса внутри прокрутки, противопоказан. Другими словами, включение прокрутки в UITableView гарантированно не будет надежно работать Apple. – RonLugge

+1

@RonLugge, это правда, мы всегда должны следовать HIG, но креативность также необходима в хорошем программировании. ;) Я считаю, что проблема, с которой вы сталкиваетесь, заключается в использовании двух scrollViews, заставляя это значение представлять другой второй scrollView (ваш tableView). Это подтверждается тем фактом, что вы обычно не можете прокручивать tableViews по горизонтали. – erran

+1

@ipwnstuff Я проигнорировал это правило самостоятельно несколько раз, но я просто хотел выбросить его, если вы его избежите, вы действительно должны это делать. – RonLugge

ответ

1

Учитывая, что Tableview является Scrollview подклассов кажется, что проблема заключается в том, что scrollOffset.x устанавливается каким бы ни Scrollview вы в настоящее время скроллинга внутри. Попробуйте добавить теги в представление таблицы и просмотреть прокрутку и добавить переменную, чтобы не отставать от scrollOffset.x только для прокрутки в вашем заголовке.

+0

теги почему-то не работали. hoever это работает: - (Недействительными) scrollViewDidScroll: (UIScrollView *) Scrollview { если (Scrollview == scrollView1) { // делать вещи с scrollView1 } еще если (Scrollview == scrollView2) { // делать вещи с scrollView2 } } спасибо в любом случае .... –

+0

Вид на столе имеет привычку быть немного сложным. Нет проблем! – erran

Смежные вопросы