使物业为您的手势:
@property (nonatomic, strong) UILongPressGestureRecognizer *longPress;
初始化:
self.longPress = [UILongPressGestureRecognizer initWithTarget:self action:@selector(gestureRecognizedStateDidChanged:)];
self.longPress.minimumPressDuration = 0.03;
你的视图控制器类应该实现<UIGestureRecognizerDelegate>
协议:
self.longPress.delegate = self;
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)sender {
return CGRectContainsPoint(self.targetImage.frame, [sender locationInView:self.view]);
}
- (void)gestureRecognizedStateDidChanged:(UILongPressGestureRecognizer *)sender {
switch (recognizer.state) {
case UIGestureRecognizerStatePossible:
case UIGestureRecognizerStateBegan: {
// did started, you can pick up your view
self.targerImageView.center = [sender locationInView:self.view];
break;
}
case UIGestureRecognizerStateFailed:
case UIGestureRecognizerStateCancelled:
case UIGestureRecognizerStateEnded: {
// drop callback, bring you view home or to target
if (CGRectContainsPoint(self.toDropImageViews.frame, [sender locationInView:self.view]) {
// do you drop code here
}
break;
}
case UIGestureRecognizerStateChanged: {
self.targerImageView.center = [sender locationInView:self.view];
// moving callback
break;
}
}
感谢你为这个。对我来说这听起来最合乎逻辑,正如我今天在工作中谈到的那样。我不想将imageview设置为A的图像,因此我能够将A对象的中心与其中一个视图的中心进行匹配?谢谢。 – Kevin 2013-02-28 02:06:07
是的。您可以将A的中心指定为其中一个瓷砖的中心之一。 – Rakesh 2013-02-28 02:30:03