首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
iOS 开发实用技术导航
NSHipster 中文版
›
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
›
http://www.cocos2d-iphone.org/
CocoaPods
›
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
›
http://code.google.com/mobile/analytics/
WWDC
›
https://developer.apple.com/wwdc/
Design Guides and Resources
›
https://developer.apple.com/design/
Transcripts of WWDC sessions
›
http://asciiwwdc.com
Cocoa with Love
›
http://cocoawithlove.com/
Cocoa Dev Central
›
http://cocoadevcentral.com/
NSHipster
›
http://nshipster.com/
Style Guides
›
Google Objective-C Style Guide
›
NYTimes Objective-C Style Guide
Useful Tools and Services
›
Charles Web Debugging Proxy
›
Smore
广告
V2EX
›
iDev
老版 iOS 网易新闻往左滑倒第一页,继续滑会滑出侧边栏,是如何处理手势事件的呢?
finab
·
Finb
·
2015-07-29 18:06:32 +08:00
· 3476 次点击
这是一个创建于 3693 天前的主题,其中的信息可能已经有所发展或是发生改变。
首先新闻首页肯定是在一个UIScrollView里 ,这个UIScrollView和侧边栏肯定是某个view(记为父View)的subview。
手指在首页第一页滑动时,肯定是要触发 UiIScrollView 的pan手势的,
pan手势识别后发现是往右滑动,就正常处理手势事件,UIScrollView正常往右滑动
pan手势识别后发现是往左移动,就需要取消当前手势,让父View继续识别pan手势,打开侧边栏
问题: 这里怎么取消当前识别了的手势,并让父View继续识别pan手势呢?nextResponder touches 系列方法并不能 因为调用时,手势识别都结束了
上面那种想法太理想了,估计可能实现不了,
于是有第二种想法
父View中 实现 shouldBeRequiredToFailByGestureRecognizer 方法
当发现是往左滑时,返回YES 直接截胡把事情办了,UIScrollView上就不会识别到手势了
当发现是往右滑时,返回NO ,自己不处理了,然后UIScrollView正常识别处理
但是当我判断左滑右滑时,发现这个方法还不能识别左滑右滑,因为手势还是开始状态,只有手指第一下点的坐标
而能判断左滑右滑的事件里,已经来不及截胡了,
所以现在只能做到 左侧边缘滑动,滑出左侧菜单 ,而做不到老版网易新闻那样
想问问大家有没有类似的实现,或者可以给我个思路
手势
识别
pan
5 条回复
•
2015-07-30 20:09:55 +08:00
1
codeface
2015-07-29 19:19:38 +08:00
http://code4app.com/ios/Pan-ScrollView/5194ac1a6803fa293a000000
话不多说,直接看代码吧。
2
ca1123
2015-07-29 19:35:03 +08:00
你这么想:
每次一pan都先问:"要不要侧边栏啊~"
如果发现不是第一页 就说:"不要~ 不要~ 叔叔我们不要~"
然后执行翻页
如果发现是第一页 就说:"约!"
然后显示边栏
以上都是我胡扯的....
3
doluvor
2015-07-29 19:40:39 +08:00
可以考虑在Pan手势回调里面计算手势同touch点的位移,根据x位移的正负来处理。
4
black
2015-07-30 10:38:08 +08:00
很早以前解决过这个问题:
https://github.com/guojiubo/CWStackController
demo 里面有楼主想要的
5
finab
OP
2015-07-30 20:09:55 +08:00
@
black
谢谢,当拜读你的代码时,发现 UIKit/UIGestureRecognizerSubclass.h 这个可以修改GestureRecognizer 的state的时候,我就知道我的问题解决了
我将首页的scrollView的pan手势 requireGestureRecognizerToFail 侧边栏手势
这样侧边栏手势能先于scrollView识别,识别过程中根据条件设置 Failed 就能实现我需要的效果
再次感谢!
关于
·
帮助文档
·
自助推广系统
·
博客
·
API
·
FAQ
·
实用小工具
·
6032 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms ·
UTC 02:04
·
PVG 10:04
·
LAX 19:04
·
JFK 22:04
Developed with
CodeLauncher
♥ Do have faith in what you're doing.
❯