侧滑栏的实现

效果图


现在这些框架很多第三方资源,但是想自己写一个。侧滑实现比较简单,根据自己需求去扩展界面。

创建一个类MenuViewController作为Navigation的rootVC

新建一个UIView(MenuView)作为左侧漏出来的一部分,新建一个ContentViewController作为右侧可拖动的部分。将两个分别添加到MenuViewController上给ContentViewController的view加上拖拽的手势。

实现手势的事件方法,侧滑效果就完成了。

- (void)panGesture:(UIPanGestureRecognizer *)recognizer {

CGPoint point = [recognizer translationInView:self.contenViewController.view];

recognizer.view.center = CGPointMake(recognizer.view.center.x + point.x, recognizer.view.center.y);

CGFloat viewX = recognizer.view.frame.origin.x;

CGFloat viewY = recognizer.view.frame.origin.y;

if (viewX < 0) {

recognizer.view.frame = CGRectMake(0, viewY, recognizer.view.frame.size.width, recognizer.view.frame.size.height);

} else if (viewX >= self.view.frame.size.width * 0.8) {

recognizer.view.frame = CGRectMake(self.view.frame.size.width * 0.8, viewY, recognizer.view.frame.size.width, recognizer.view.frame.size.height);

} else {

recognizer.view.frame = CGRectMake(viewX + point.x, viewY, recognizer.view.frame.size.width, recognizer.view.frame.size.height);

}

if (recognizer.state == UIGestureRecognizerStateEnded) {

if (viewX < 120) {

[UIView animateWithDuration:0.5 animations:^{

recognizer.view.frame = CGRectMake(0, viewY, recognizer.view.frame.size.width, recognizer.view.frame.size.height);

}];

}

if (viewX > 120) {

[UIView animateWithDuration:0.5 animations:^{

recognizer.view.frame = CGRectMake(self.view.frame.size.width * 0.8, viewY, recognizer.view.frame.size.width, recognizer.view.frame.size.height);

}];

}

}

[recognizer setTranslation:CGPointZero inView:self.contenViewController.view];

}



demo下载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ViewsBecause view objects are the main way your applicati...
    梁光飞阅读 3,928评论 0 0
  • 1、设置UILabel行间距 NSMutableAttributedString* attrString = [[...
    十年一品温如言1008阅读 5,887评论 0 3
  • 23岁: 你好! 北京时间的你到来的时候,我正跑在一条河边,突然手机里充满了温暖的问候。感动之余我也发现:你真的来...
    圣狗子阅读 1,873评论 0 2
  • 自从开始追相声后,就觉得自己是个文盲,努力想让自己达到“腹有诗书气自华”状态,奈何腹内存货太少,所以说人丑就要多读...
    爱吃喵的松鼠桂鱼喵阅读 3,576评论 3 7
  • 8.头发(上) 随着学习压力或是工作压力的增加,很多人都会有掉头发的情况出现,尤其是早上起床的时候,看到枕边散落着...
    秋枫叶舞阅读 3,110评论 0 7

友情链接更多精彩内容