1. 程式人生 > >IOS圖片拖動 UIPanGestureRecognizer的使用案例

IOS圖片拖動 UIPanGestureRecognizer的使用案例

//

//  pictureDragViewController.m

//  Join10

//

//  Created by Shining Chen on 16/1/20.

//  Copyright © 2016 chen ling. All rights reserved.

//

#import "pictureDragViewController.h"

@interface pictureDragViewController ()

@property(nonatomic,strong)UIImageView *picImg;

@end

@implementation pictureDragViewController

-(UIImageView *)picImg{

    if (!_picImg) {

_picImg=[[UIImageViewalloc]initWithFrame:CGRectMake(150, 150, 100, 100)];

        _picImg.image=[UIImage imageNamed:@"IceCreamImg"];

        [self.view addSubview:_picImg];

    }

return_picImg;

}

- (void)viewDidLoad {

    [superviewDidLoad];

// Do any additional setup after loading the view.

self.view.backgroundColor=ViewBackGroundColor;

UIPanGestureRecognizer *pan=[[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(handlePan:)];

    [self.picImgsetUserInteractionEnabled:YES];//開啟圖片控制元件的使用者互動

    [self.picImgaddGestureRecognizer:pan];//給圖片新增手勢

}

-(void)handlePan:(UIPanGestureRecognizer *)rec{

//返回在橫座標上、縱座標上拖動了多少畫素

    CGPoint point=[rec translationInView:self.view];

    NSLog(@"%f,%f",point.x,point.y);

    rec.view.center=CGPointMake(rec.view.center.x+point.x, rec.view.center.y+point.y);

//拖動完之後,每次都要用setTranslation:方法制0這樣才不至於不受控制般滑動出檢視

    [rec setTranslation:CGPointMake(0, 0) inView:self.view];

}

- (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}