注意:这不是性能问题!我意识到在UITableView中出现单元出现的好处。为什么滚动UITableView比滚动UIScrollView响应更快?
为了测试我创建了一个UIScrollView与具有白色滚动视图黑色背景颜色一些简单的不透明的UIView子视图,以及它们之间的100点的间距,以便有东西滚动。非常轻量。没有其他的。真的相信我,它不重。
我注意到开始滚动滚动视图和开始滚动表视图之间的巨大差异。
当我触摸滚动视图并立即开始拖动时,它落后了大约0.25秒,然后突然爬起来。从那里,它是流体,没有滞后,直到我再次触摸并再次触及。
,当我做同样的事情更,更大,更复杂的UITableView有它开始滚动前0.25秒无初始延迟。
我试图改变每一个可能的属性,但不能消除这个愚蠢的延迟。我相信这与滚动视图有关,如果触摸想要发生在子视图上,然后看到用户是否移动了它的手指太多。然后它开始滚动。
现在疯狂的事情是UITableView的是一个UIScrollView本身,我想我的UIScrollView开始滚动一样快,一个UITableView。怎么样?
编辑:嘘......我发现一些疯狂!
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属性。最可疑的是带有delayedTouchesBegan的UIScrollViewDelayedTouchesBeganGestureRecognizer。该死的! 如何在iOS4中将其设置为否?
好猜。我尝试禁用内部视图的用户交互,但没有效果。 –
-TouchesShouldCancelInContentView:绝对没有效果。 –