Примечание: это не проблема с производительностью! Я знаю о преимуществах деактивации ячейки в UITableView.Почему прокрутка UITableView намного отзывчива, чем прокрутка UIScrollView?
Для тестирования я создал UIScrollView с простыми непрозрачными областями UIView, которые имеют черный цвет фона в белом прокрутке и 100 точек между ними, чтобы можно было прокручивать. Очень легкий. Ничего больше. На самом деле мне доверяют, это не тяжело.
Я замечаю огромную разницу между началом прокрутки прокрутки и началом прокрутки табличного вида.
Когда я касаюсь вида прокрутки и сразу начинаю таскать, он отстает примерно на 0,25 секунды, а затем внезапно догоняет. Оттуда это жидкость, никаких задержек, пока я не прикоснусь и не приземлюсь снова.
На много, намного больше и сложнее UITableView, когда я делаю то же самое, нет начальной задержки в 0,25 секунды, прежде чем она начнет прокрутку.
Я попытался изменить все возможные свойства, но просто не могу устранить эту глупую задержку. Я считаю, что это связано с видом прокрутки, который хочет выяснить, будет ли прикосновение отображаться в подзоне, а затем видит, слишком ли сильно перемещается пользователь. Затем он начинает прокрутку.
Теперь сумасшедшая вещь - UITableView - это сам UIScrollView, и я хочу, чтобы моя UIScrollView начала прокручиваться так же быстро, как UITableView. Как?
Редактировать: Sh .. Я нашел что-то CRAZY!
NSLog(@"GR = %@", self.gestureRecognizers);
GR = (
"<UIScrollViewDelayedTouchesBeganGestureRecognizer: 0x13e930;
state = Possible;
delaysTouchesBegan = YES;
view = <TestScrollView 0x13e380>;
target= <(action=delayed:, target=<TestScrollView 0x13e380>)>>",
"<UIScrollViewPanGestureRecognizer: 0x13ee00;
state = Possible;
delaysTouchesEnded = NO;
view = <TestScrollView 0x13e380>;
target= <(action=handlePan:, target=<TestScrollView 0x13e380>)>>"
)
Это iOS 4, и в iOS4 нет свойства panGestureRecognizer. Наиболее подозрительным является UIScrollViewDelayedTouchesBeganGestureRecognizer с задержкамиTouchesBegan. Черт! Как я могу установить это на NO в iOS4?
Догадка. Я попытался отключить взаимодействие с пользователем для внутренних просмотров, но никакого эффекта. –
-touchesShouldCancelInContentView: абсолютно никакого эффекта. –