侧滑的简单实现


#import "ViewController.h"

#define OfSetX 100

#define Width self.view.bounds.size.width

@interface ViewController ()

@property (strong, nonatomic) IBOutlet UIView *slideView;//从sb拖出来的最外层view


@property (nonatomic,assign)float lastX;


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    //给最外层view增加手势

    UIPanGestureRecognizer * panGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(slide:)];

    [self.slideView addGestureRecognizer:panGestureRecognizer];

    

}


-(void)slide:(UIPanGestureRecognizer *)sender

{

    CGRect frame = sender.view.frame;

    

    //以下代码就是判断偏移量做相应操作,如果想用Tableview做底层的话,换成TableViewController即可

    if (sender.state == UIGestureRecognizerStateBegan) {

        

        self.lastX = frame.origin.x;

    }

    

    

    CGPoint point =[sender translationInView:sender.view];

    

    NSLog(@"%@",NSStringFromCGPoint(point));

    

    frame.origin.x = point.x + self.lastX;

    

    sender.view.frame = frame;

  

    

    if (sender.state == UIGestureRecognizerStateEnded) {

     

        if (point.x < 100) {

            

            frame.origin.x = 0;

        }

        else

        {

            frame.origin.x = Width - OfSetX;

        }

        [UIView animateWithDuration:0.5 animations:^{

            

            sender.view.frame = frame;

        }];

        

    }

    

}



你可能感兴趣的:(侧滑的简单实现)