您的位置:首页 > 产品设计 > UI/UE

iOS 工作笔记之PKRevealController和UIScrollView,UITableView的配合使用

2014-08-15 10:24 567 查看

                 

         


如上图,项目是一个类似网易新闻的项目。这个叫潮流资讯的视图控制器界面的组成是这样的,(美容,服饰,明星等)按钮是放在一个UIScrollView上面的。这个UIScrollView add到了self.view上面。 下面展示新闻的使用的是一个UITableView。想达到的效果是用手点击(美容,服饰,明星等)按钮,下面的UITableView上显示的内容跟随按钮的变化而变化,如果当前在明星频道,用手滑动内容,左面滑动,就显示服饰内容,右面滑动就显示情感内容,当滑到第一页或者是最后一页的时候,在滑动就显示侧边栏。

开始的思路是在一个UIScrollView上面加上多个UITableView,这样滑动UIScrollView的时候,UIScrollView 不同的偏移量显示不同的UITableView。这个思路可以,但是滑动到左右边界的时候,再滑动,侧边栏不会出现。

仔细研究了一下PKRevealController,发现正常情况下,PKRevealController是通过UIPanGestureRecognizer来达到左右侧滑的效果的。但是如果加上了一个UIScrollView,UIScrollView在滚动的时候,会中断PKRevealController的UIPanGestureRecognizer。所以需要利用UIScrollView中得PanGestureRecognizer,代码如下

-(void)scrollHandlePan:(UIPanGestureRecognizer*) panParam
{
if(_rlScrollView.contentOffset.x<=0)
{
[[RLWAppDelegate appDelegate].revealController didRecognizePanWithGestureRecognizer:panParam];

}
else if (_rlScrollView.contentOffset.x >=(_rlScrollView.contentSize.width - _rlScrollView.frame.size.width))
{
[[RLWAppDelegate appDelegate].revealController didRecognizePanWithGestureRecognizer:panParam];
}

}


然后需要把PKRevealController中的私有方法
didRecognizePanWithGestureRecognizer
改成公有方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: