首页 - IOS编程

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

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

        

    }

}