#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;
}];
}
}