通过分析,基本上。网易新闻客户端的主页面是一个UIScrollView种包含了N个UITableView.通过UIScrollView的滑动来实现栏目之间的切换。这没问题。
我的问题是,当UIScrollView划到最左边的时候,他是如何让焦点立刻转移。不把UIScrollView的CotentOffset.x 成为负数,显示一块空白。而是,把左侧的菜单栏呼出来的呢? 然后,回到主View的时候,又是怎么样,立刻让UIScrollView能够往右滑动了呢?
通过快速滑动,发现足够快的时候,滑到最左的时候,还是像普通的UIScrollView那样能够显示一块空白的。但是他能够立刻修复。应该是把UIScrollView的scrollEnabled = NO,或者是setUserInteractionEnabled=NO了。
向大家请教一下。谁能讲解一下这个是怎么实现的,或者提供一个类似的源码?
UIScrollView有这样两个属性:
@property(nonatomic) BOOL alwaysBounceVertical
@property(nonatomic) BOOL alwaysBounceHorizontal
去code4app或者cocoachina代码库里找找滑出侧栏的例子自己研究下,至于你说的scrollview滑到最左之后拉出侧栏,其实只是思维变通的问题。没有固定的方案,你应该学会变通多想想不同可能做法。
举个例子,把scrollview的事件传给父view,然后到头的时候检测一下让父view继续处理事件,从来通过父view来把侧栏滑出。具体就看你自己慢慢研究了。这种细节又不是有特别大困难的事情,最好还是自己多看别人的例子,然后变通尝试不同的办法找到合适自己需要的。
2楼 @jjjjjeffrey UIScrollView 的bounces 属性设为NO 是不显示空白区域。 好了,现在终于比较正确了。 参考了 http://code4app.com/ios/仿网易新闻的滑动视图布局/5255fbd96803fa8660000000