天天看点

关于在UIScrollView上添加UITableView出现的问题【原理】

uiscrollview的几个要点总结:从你的手指touch屏幕开始,scrollview开始一个timer,如果:

1.  150ms内如果你的手指没有任何动作,消息就会传给subview。

2.  150ms内手指有明显的滑动(一个swipe动作),scrollview就会滚动,消息不会传给subview,这里就是产生问题二的原因。

3. 150ms内手指没有滑动,scrollview将消息传给subview,但是之后手指开始滑动,scrollview传送touchescancelled消息给subview,然后开始滚动。

观察下tableview的情况,你先按住一个cell,cell开始高亮,手不要放开,开始滑动,tableview开始滚动,高亮取消。

delayscontenttouches的作用:

这个标志默认是yes,使用上面的150ms的timer,如果设置为no,touch事件立即传递给subview,不会有150ms的等待。

cancelstouches的作用:

这个标准默认为yes,如果设置为no,这消息一旦传递给subview,这scroll事件不会再发生。

你可以结合这两个属性调调看。

这个文章是在论坛上看到的,记录下来,希望能帮助更多的人。。。。。。