美文网首页
iOS开发-控件拖动简单实现

iOS开发-控件拖动简单实现

作者: Autolying | 来源:发表于2016-09-07 21:43 被阅读0次

一、预览

话不多说,直接上图:

2016-09-07 21_38_42.gif

二、代码解析

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *dragView;//可以是UIView的子类
@property (nonatomic, strong) UIPanGestureRecognizer *panGestureRecognizer;//添加在视图上的拖动手势
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [self.dragView addGestureRecognizer:self.panGestureRecognizer];
}

- (UIPanGestureRecognizer *)panGestureRecognizer
{
    if (!_panGestureRecognizer) {
        _panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(dragViewMoved:)];
    }
    return _panGestureRecognizer;
}

- (void)dragViewMoved:(UIPanGestureRecognizer *)panGestureRecognizer
{
    if (panGestureRecognizer.state == UIGestureRecognizerStateChanged) {
        CGPoint translation = [panGestureRecognizer translationInView:self.view];
        
        self.dragView.center = CGPointMake(self.dragView.center.x + translation.x, self.dragView.center.y + translation.y);
        
        //关键,不设为零会不断递增,视图会突然不见
        [panGestureRecognizer setTranslation:CGPointZero inView:self.view];
    }
}

相关文章

网友评论

      本文标题:iOS开发-控件拖动简单实现

      本文链接:https://www.haomeiwen.com/subject/wlxsettx.html