苹果侧边滑动返回_iOS 两种方法实现左右滑动出现侧边菜单栏 slide view

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

_centerController = (MainViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MainViewController"];

_leftController = (LeftViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"];

_rightController = (RightViewController *)[storyboard instantiateViewControllerWithIdentifier:@"RightViewController"];

[self.view addSubview:_centerController.view];

[_centerController.view setTag:1];

[_centerController.view setFrame:self.view.bounds];

[self.view addSubview:_leftController.view];

[_leftController.view setTag:2];

[_leftController.view setFrame:self.view.bounds];

[self.view addSubview:_rightController.view];

[_rightController.view setTag:3];

[_rightController.view setFrame:self.view.bounds];

[self.view bringSubviewToFront:_centerController.view];

//add swipe gesture

UISwipeGestureRecognizer *swipeGestureRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)];

[swipeGestureRight setDirection:UISwipeGestureRecognizerDirectionRight];

[_centerController.view addGestureRecognizer:swipeGestureRight];

UISwipeGestureRecognizer *swipeGestureLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)];

[swipeGestureLeft setDirection:UISwipeGestureRecognizerDirectionLeft];

[_centerController.view addGestureRecognizer:swipeGestureLeft];

}

-(void) swipeGesture:(UISwipeGestureRecognizer *)swipeGestureRecognizer {

CALayer *layer = [_centerController.view layer];

layer.shadowColor = [UIColor blackColor].CGColor;

layer.shadowOffset = CGSizeMake(1, 1);

layer.shadowOpacity = 1;

layer.shadowRadius = 20.0;

if (swipeGestureRecognizer.direction == UISwipeGestureRecognizerDirectionRight) {

[_leftController.view setHidden:NO];

[_rightController.view setHidden:YES];

[UIView beginAnimations:nil context:nil];

[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];

if (_centerController.view.frame.origin.x == self.view.frame.origin.x || _centerController.view.frame.origin.x == -100) {

[_centerController.view setFrame:CGRectMake(_centerController.view.frame.origin.x+100, _centerController.view.frame.origin.y, _centerController.view.frame.size.width, _centerController.view.frame.size.height)];

}

[UIView commitAnimations];

}

if (swipeGestureRecognizer.direction == UISwipeGestureRecognizerDirectionLeft) {

[_rightController.view setHidden:NO];

[_leftController.view setHidden:YES];

[UIView beginAnimations:nil context:nil];

[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

if (_centerController.view.frame.origin.x == self.view.frame.origin.x || _centerController.view.frame.origin.x == 100) {

[_centerController.view setFrame:CGRectMake(_centerController.view.frame.origin.x-100, _centerController.view.frame.origin.y, _centerController.view.frame.size.width, _centerController.view.frame.size.height)];

}

[UIView commitAnimations];

}

}

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

_centerController = (MainViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MainViewController"];

_leftController = (LeftViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"];

_rightController = (RightViewController *)[storyboard instantiateViewControllerWithIdentifier:@"RightViewController"];

[self.view addSubview:_centerController.view];

[_centerController.view setTag:1];

[_centerController.view setFrame:self.view.bounds];

[self.view addSubview:_leftController.view];

[_leftController.view setTag:2];

[_leftController.view setFrame:self.view.bounds];

[self.view addSubview:_rightController.view];

[_rightController.view setTag:3];

[_rightController.view setFrame:self.view.bounds];

[self.view bringSubviewToFront:_centerController.view];

//add swipe gesture

UISwipeGestureRecognizer *swipeGestureRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)];

[swipeGestureRight setDirection:UISwipeGestureRecognizerDirectionRight];

[_centerController.view addGestureRecognizer:swipeGestureRight];

UISwipeGestureRecognizer *swipeGestureLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)];

[swipeGestureLeft setDirection:UISwipeGestureRecognizerDirectionLeft];

[_centerController.view addGestureRecognizer:swipeGestureLeft];

}

-(void) swipeGesture:(UISwipeGestureRecognizer *)swipeGestureRecognizer {

CALayer *layer = [_centerController.view layer];

layer.shadowColor = [UIColor blackColor].CGColor;

layer.shadowOffset = CGSizeMake(1, 1);

layer.shadowOpacity = 1;

layer.shadowRadius = 20.0;

if (swipeGestureRecognizer.direction == UISwipeGestureRecognizerDirectionRight) {

[_leftController.view setHidden:NO];

[_rightController.view setHidden:YES];

[UIView beginAnimations:nil context:nil];

[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];

if (_centerController.view.frame.origin.x == self.view.frame.origin.x || _centerController.view.frame.origin.x == -100) {

[_centerController.view setFrame:CGRectMake(_centerController.view.frame.origin.x+100, _centerController.view.frame.origin.y, _centerController.view.frame.size.width, _centerController.view.frame.size.height)];

}

[UIView commitAnimations];

}

if (swipeGestureRecognizer.direction == UISwipeGestureRecognizerDirectionLeft) {

[_rightController.view setHidden:NO];

[_leftController.view setHidden:YES];

[UIView beginAnimations:nil context:nil];

[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

if (_centerController.view.frame.origin.x == self.view.frame.origin.x || _centerController.view.frame.origin.x == 100) {

[_centerController.view setFrame:CGRectMake(_centerController.view.frame.origin.x-100, _centerController.view.frame.origin.y, _centerController.view.frame.size.width, _centerController.view.frame.size.height)];

}

[UIView commitAnimations];

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值