我使用平移手势在拖动线中拖动多个视图,类似于:iOS - 拖放碰撞检测如何检测您选择的项目何时拖动到另一个子视图上?
我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
for (UIView *aView in self.view.subviews) {
[self addGestureRecognizersToPiece:aView];
}
}
- (void)addGestureRecognizersToPiece:(UIView *)piece
{
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panPiece:)];
[piece addGestureRecognizer:panGesture];
}
- (void)panPiece:(UIPanGestureRecognizer *)gestureRecognizer
{
CGPoint dragingPoint = [gestureRecognizer locationInView:self.view];
for (UIView *aView in self.view.subviews) {
if (CGRectContainsPoint([aView frame], dragingPoint)) {
aView.center = dragingPoint;
}
}
}
我有这么多子视图,所以我不想循环 self.view 中的所有子视图,我只想检测拖动线中的匹配视图。怎么做?
如果我使用 [gestureRecognizer 视图],我只会得到第一个视图。
提前感谢您的帮助!