Я занимаюсь разработкой приложения, которое позволяет пользователю в определенный момент перетаскивать 10 изображений.Таким образом, есть 10 изображений, и если он / она перетаскивает одно изображение на другое, эти два меняются местами.
Скриншот того, как это выглядит:

Поэтому, когда пользователь перетаскивает одну фотографию, я хочу, чтобы она уменьшила непрозрачность и дала пользователю перетаскиваемое изображение на его пальце, которое снова исчезнет, если он уронит его за пределы какого-либо изображения.
Способ, которым я разработал этоследующие.Я установил UIPanGesture
для этих UIImageView
s как:
for (UIImageView *imgView in editPhotosView.subviews) {
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(photoDragged:)];
[imgView addGestureRecognizer:panGesture];
imgView.userInteractionEnabled = YES;
[panGesture release];
}
Тогда мой photoDragged:
метод:
- (void)photoDragged:(UIPanGestureRecognizer *)gesture {
UIView *view = gesture.view;
if ([view isKindOfClass:[UIImageView class]]) {
UIImageView *imgView = (UIImageView *)view;
if (gesture.state == UIGestureRecognizerStateBegan) {
imgView.alpha = 0.5;
UIImageView *newView = [[UIImageView alloc] initWithFrame:imgView.frame];
newView.image = imgView.image;
newView.tag = imgView.tag;
newView.backgroundColor = imgView.backgroundColor;
newView.gestureRecognizers = imgView.gestureRecognizers;
[editPhotosView addSubview:newView];
[newView release];
}
else if (gesture.state == UIGestureRecognizerStateChanged) {
CGPoint translation = [gesture translationInView:view.superview];
[view setCenter:CGPointMake(view.center.x + translation.x, view.center.y + translation.y)];
[gesture setTranslation:CGPointZero inView:view.superview];
}
else { ... }
}
}
Таким образом, как вы видите, я добавляю новый UIImageView
с непрозрачностью 0,5 на том же месте, что и исходное изображение, когда пользователь начинает его перетаскивать.Таким образом, пользователь перетаскивает оригинальное изображение вокруг.Но я хочу сделать , чтобы скопировать оригинальное изображение, когда пользователь перетаскивает его, создать «перетаскиваемое» изображение и передать его пользователю для перетаскивания.
Но для этого я должен передать пользователю прикосновение к вновь созданному «перетаскиваемому» UIImageView.Хотя оно фактически установлено на исходное изображение (то, к которому пользователь прикасается, когда начинает перетаскивать).
Поэтому мой вопрос: Как передать касание пользователя другому элементу? .
Надеюсь, это имеет смысл.Спасибо за вашу помощь!