Массив uiimageview gesture
-
13-11-2019 - |
Вопрос
На мой взгляд, есть массив UiimageView.Я пытался добавить жест панорамирования, мой UiimageView способен двигаться.Но проблема в том, что я вставляю второй UiimageView в массив, я могу переместить UiimageView, когда я касаюсь предыдущего UiimageView.
Как мне ограничить прикосновение в текущем uiiimageView?
- (void)addNewImageToArray: (UIImage *)inImage
{
UIImageView *tempImageView = [[UIImageView alloc]initWithImage:inImage];
tempImageView.userInteractionEnabled = YES;
tempImageView.center = self.vwDesktop.center;
CALayer * l = [tempImageView layer];
[l setBorderWidth:2.0];
[l setBorderColor:[[UIColor grayColor] CGColor]];
tempImageView.frame = CGRectMake(0,0,inImage.size.width,inImage.size.height);
[currentImageArray addObject:tempImageView];
UIPanGestureRecognizer *stampPanGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveStamp:)];
[stampPanGesture setMinimumNumberOfTouches:1];
[stampPanGesture setMaximumNumberOfTouches:1];
[[currentImageArray objectAtIndex:currentImageArray.count - 1] addGestureRecognizer:stampPanGesture];
[self.vwDesktop addSubview:[currentImageArray objectAtIndex:currentImageArray.count - 1]];
}
. Решение
Есть ли причина, причина, по которой вы не добавляете распознатель жест в TempImageView, прежде чем добавлять его в CUTECIMAGEARRAY?
Нам действительно нужно увидеть код в Movestamp.Основываясь на том, как вы это делаете, вам нужно допросить распознать, спросите его, кто его просмотр, а затем переместить этот вид.Ты делаешь это?У меня нет Code Handy, но выглядит что-то вроде:
- (void)moveStamp:(UIPanGestureRecognizer*)panRecognizer {
UIView *viewToMove = panRecognizer.view;
// move the view around
}
.
Panrecognizer будет указывать только на это, чтобы он должен работать.Я сделал это со многими объектами на экране (например, см. Мое приложение QPLUS, например, комбинируя сковороду, щепотку и кран жесты, и все они играют приятно вместе.
Удачи,
Damien
Другие советы
Может быть, вы можете использовать тег UiimageView, чтобы решить вашу проблему.
- (void)moveStamp:(UIGestureRecognizer *)gesture
{
NSInteger tag = gesture.view.tag;
if (tag = currentViewTag) {
return;
}
//...
}
.