当前位置:首页 > 通信资讯 > 正文

ios侧滑返回插件(ios下滑栏)

效果

ios侧滑返回插件(ios下滑栏)

源码:https://github.com/youxianming/ios-project-examples 中的 sideviewcontroller

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 // // viewcontroller.m // sideviewcontroller // // created by youxianming on 16/6/6. // copyright © 2016年 youxianming. all rights reserved. // #import "viewcontroller.h" #import "leftviewcontroller.h" #import "mainviewcontroller.h" #import "uiview+setrect.h" @interface viewcontroller () { cgfloat _screenwidth; } @property (nonatomic, strong) uipangesturerecognizer *pangesture; @property (nonatomic) cgpoint panbeginpoint; @property (nonatomic, strong) leftviewcontroller *leftviewcontroller; @property (nonatomic, strong) uiview *leftview; @property (nonatomic, strong) mainviewcontroller *mainviewcontroller; @property (nonatomic, strong) uiview *mainview; @end @implementation viewcontroller - (void)viewdidload { [super viewdidload]; // init some value. _screenwidth = width; // add backgroundview. uiimageview *backgroundview = [[uiimageview alloc] initwithframe:self.view.bounds]; backgroundview.image = [uiimage imagenamed:@"back"]; [self.view addsubview:backgroundview]; // leftviewcontroller self.leftviewcontroller = [[leftviewcontroller alloc] init]; self.leftview = self.leftviewcontroller.view; [self.view addsubview:self.leftview]; // mainviewcontroller self.mainviewcontroller = [[mainviewcontroller alloc] init]; self.mainview = self.mainviewcontroller.view; [self.view addsubview:self.mainview]; // pan gesture. self.pangesture = [[uipangesturerecognizer alloc] initwithtarget:self action:@selector(pangestureevent:)]; [self.mainview addgesturerecognizer:self.pangesture]; } - (void)pangestureevent:(uipangesturerecognizer *)gesture { cgpoint translation = [gesture translationinview:gesture.view]; cgpoint velocity = [gesture velocityinview:gesture.view]; cgfloat gap = _screenwidth / 3.f * 2; cgfloat sensitiveposition = _screenwidth / 2.f; if (velocity.x < 0 && _mainview.x <= 0) { // 过滤掉向左侧滑过头的情形 _mainview.x = 0.f; } else { if (gesture.state == uigesturerecognizerstatebegan) { // 开始 _panbeginpoint = translation; if (_mainview.x >= sensitiveposition) { _panbeginpoint.x -= gap; } } else if (gesture.state == uigesturerecognizerstatechanged) { // 值变化 _mainview.x = translation.x - _panbeginpoint.x; if (_mainview.x <= 0) { // 过滤掉向左侧滑过头的情形 _mainview.x = 0.f; } } else if (gesture.state == uigesturerecognizerstateended) { // 结束 [uiview animatewithduration:0.20f animations:^{ _mainview.x >= sensitiveposition ? (_mainview.x = gap) : (_mainview.x = 0); }]; } } } @end

ios侧滑返回插件(ios下滑栏)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。