UIPanGestureRecognizer *panGesture = nil;
panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panViewWithGestureRecognizer:)];
[panGesture setMaximumNumberOfTouches:2];
[panGesture setDelegate:self];
[adminView addGestureRecognizer:panGesture];
[panGesture release];
- (void)panViewWithGestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer
{
CGPoint velocity = [gestureRecognizer velocityInView:adminView];
if(velocity.x > 0)
{
NSLog(@"gesture went right");
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged){
if (adminView.frame.origin.x <= -10) {
CGPoint translation = [gestureRecognizer translationInView:[adminView superview]];
[adminView setCenter:CGPointMake([adminView center].x + translation.x, [adminView center].y)];
[gestureRecognizer setTranslation:CGPointZero inView:[adminView superview]];
}
}
else{
if (adminView.frame.origin.x > -100) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:adminView cache:YES];
adminView.frame=CGRectMake(0, 0, 322, 748);
[UIView commitAnimations];
}
else{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:adminView cache:YES];
adminView.frame=CGRectMake(-295, 0, 322, 748);
[UIView commitAnimations];
}
}
}
else
{
NSLog(@"gesture went left");
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged){
if (adminView.frame.origin.x > -200) {
CGPoint translation = [gestureRecognizer translationInView:[adminView superview]];
[adminView setCenter:CGPointMake([adminView center].x + translation.x, [adminView center].y)];
[gestureRecognizer setTranslation:CGPointZero inView:[adminView superview]];
}
}
else{
if (adminView.frame.origin.x > -250) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:adminView cache:YES];
adminView.frame=CGRectMake(-295, 0, 322, 748);
[UIView commitAnimations];
}
else{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:adminView cache:YES];
adminView.frame=CGRectMake(0, 0, 322, 748);
[UIView commitAnimations];
}
}
}
}
panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panViewWithGestureRecognizer:)];
[panGesture setMaximumNumberOfTouches:2];
[panGesture setDelegate:self];
[adminView addGestureRecognizer:panGesture];
[panGesture release];
- (void)panViewWithGestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer
{
CGPoint velocity = [gestureRecognizer velocityInView:adminView];
if(velocity.x > 0)
{
NSLog(@"gesture went right");
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged){
if (adminView.frame.origin.x <= -10) {
CGPoint translation = [gestureRecognizer translationInView:[adminView superview]];
[adminView setCenter:CGPointMake([adminView center].x + translation.x, [adminView center].y)];
[gestureRecognizer setTranslation:CGPointZero inView:[adminView superview]];
}
}
else{
if (adminView.frame.origin.x > -100) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:adminView cache:YES];
adminView.frame=CGRectMake(0, 0, 322, 748);
[UIView commitAnimations];
}
else{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:adminView cache:YES];
adminView.frame=CGRectMake(-295, 0, 322, 748);
[UIView commitAnimations];
}
}
}
else
{
NSLog(@"gesture went left");
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged){
if (adminView.frame.origin.x > -200) {
CGPoint translation = [gestureRecognizer translationInView:[adminView superview]];
[adminView setCenter:CGPointMake([adminView center].x + translation.x, [adminView center].y)];
[gestureRecognizer setTranslation:CGPointZero inView:[adminView superview]];
}
}
else{
if (adminView.frame.origin.x > -250) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:adminView cache:YES];
adminView.frame=CGRectMake(-295, 0, 322, 748);
[UIView commitAnimations];
}
else{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:adminView cache:YES];
adminView.frame=CGRectMake(0, 0, 322, 748);
[UIView commitAnimations];
}
}
}
}
No comments:
Post a Comment