IOS 之UIImageView添加点击和拖动事件

最近因为业务需要得用原生的IOS开发部分功能(Object-c)。

Android中的ImageView默认可以点击的,也就是clickable = true;然后通过setOnClickListener进行绑定事件的观察者。

但IOS中UIImageView默认不可点击 得需要额外处理:

设置可以点击和可以响应Touch事件

 [self.alertImage setUserInteractionEnabled:YES];

 [self.alertImage setMultipleTouchEnabled:YES];

设置点击事件的绑定

具体的处理点击和响应方法:

-(void)clickCategory:(UITapGestureRecognizer *)gestureRecognizer{

    NSLog(@"小球点击了");

}

// 处理小球拖拉手势

- (void) addGestureRecognizerToView:(UIView *)view

{

     // 移动手势

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

     [view addGestureRecognizer:panGestureRecognizer];

}

 // 处理拖拉手势

 - (void) panView:(UIPanGestureRecognizer *)panGestureRecognizer

{

     UIView *view = panGestureRecognizer.view;

       if (panGestureRecognizer.state == UIGestureRecognizerStateBegan || panGestureRecognizer.state == UIGestureRecognizerStateChanged)

    {

        CGPoint translation = [panGestureRecognizer translationInView:view.superview];

        [view setCenter:(CGPoint){view.center.x + translation.x, view.center.y + translation.y}];

        [panGestureRecognizer setTranslation:CGPointZero inView:view.superview];

        

    }

}

发布了42 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_29769851/article/details/103024073