英语轻松读发新版了,欢迎下载、更新

网易新闻的客户端切换栏目到最左的时候的,UIScrollView效果是如何实现的?

elepone 发布于 2013年10月30日
无人欣赏。

通过分析,基本上。网易新闻客户端的主页面是一个UIScrollView种包含了N个UITableView.通过UIScrollView的滑动来实现栏目之间的切换。这没问题。

我的问题是,当UIScrollView划到最左边的时候,他是如何让焦点立刻转移。不把UIScrollView的CotentOffset.x 成为负数,显示一块空白。而是,把左侧的菜单栏呼出来的呢? 然后,回到主View的时候,又是怎么样,立刻让UIScrollView能够往右滑动了呢?

通过快速滑动,发现足够快的时候,滑到最左的时候,还是像普通的UIScrollView那样能够显示一块空白的。但是他能够立刻修复。应该是把UIScrollView的scrollEnabled = NO,或者是setUserInteractionEnabled=NO了。

向大家请教一下。谁能讲解一下这个是怎么实现的,或者提供一个类似的源码?

共8条回复
elepone 回复于 2013年10月31日

难道没人碰到这样的问题?

jjjjjeffrey 回复于 2013年10月31日

UIScrollView有这样两个属性:

@property(nonatomic) BOOL alwaysBounceVertical

@property(nonatomic) BOOL alwaysBounceHorizontal

langhua9527 回复于 2013年10月31日

收藏一下,谁有个例子啊。。。

elepone 回复于 2013年10月31日

2楼 @jjjjjeffrey 这两个属性似乎没有帮助吧。 解释一下?

nickel 回复于 2013年10月31日

去code4app或者cocoachina代码库里找找滑出侧栏的例子自己研究下,至于你说的scrollview滑到最左之后拉出侧栏,其实只是思维变通的问题。没有固定的方案,你应该学会变通多想想不同可能做法。

举个例子,把scrollview的事件传给父view,然后到头的时候检测一下让父view继续处理事件,从来通过父view来把侧栏滑出。具体就看你自己慢慢研究了。这种细节又不是有特别大困难的事情,最好还是自己多看别人的例子,然后变通尝试不同的办法找到合适自己需要的。

elepone 回复于 2013年11月01日

5楼 @nickel 说的很对。不过要搞的比较完美还是有点难度。

elepone 回复于 2013年11月01日

2楼 @jjjjjeffrey UIScrollView 的bounces 属性设为NO 是不显示空白区域。 好了,现在终于比较正确了。 参考了 http://code4app.com/ios/仿网易新闻的滑动视图布局/5255fbd96803fa8660000000

jjjjjeffrey 回复于 2013年11月01日

7楼 @elepone 嘿嘿!

登录 或者 注册