У меня есть приложение, в котором пользователь нажимает кнопку, и приложение создает экземпляр слоя изображения (UIImageView). Я хочу сделать так, чтобы пользователь мог перемещать выбранный слой изображения в зависимости от того, на что он нажимает. Прочитав некоторые темы здесь, я узнал, что могу использовать UIPanGestureRecognizer для перемещения выбранного слоя изображения.
- (IBAction)buttonClicked:(id)sender {
imageview = [[UIImageView alloc] initWithFrame:CGRectMake(100, 0, 300, 22)];
UIPanGestureRecognizer *imageviewGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(recognizePan:)];
[imageviewGesture setMinimumNumberOfTouches:1];
[imageviewGesture setMaximumNumberOfTouches:1];
imageview.image = [UIImage imageNamed:@"pinimage.png"];
[imageview addGestureRecognizer:imageviewGesture];
[imageview setUserInteractionEnabled:YES];
[self.view addSubview:imageview];
NSUInteger currentag = [self UniqueTag]; // Assigning a unique integer
imageview.tag = currentag;
}
- (void)recognizePan:(UIPanGestureRecognizer *)sender {
[[[(UITapGestureRecognizer *)sender view] layer] removeAllAnimations];
[self.view bringSubviewToFront:[(UIPanGestureRecognizer *)sender view]];
CGPoint translatedPoint = [(UIPanGestureRecognizer *)sender translationInView:self.view];
if([(UIPanGestureRecognizer *)sender state] == UIGestureRecognizerStateBegan) {
firstX = [[sender view] center].x;
firstY = [[sender view] center].y;
}
translatedPoint = CGPointMake(firstX + translatedPoint.x,firstY + translatedPoint.y);
[[sender view] setCenter:translatedPoint];
}
Теперь я не могу понять, как вывести слой с постукиванием на передний план, когда есть несколько слоев изображения. Не похоже, что [self.view BringSubviewToFront: [(UIPanGestureRecognizer *) представление отправителя]] эффективен. Итак, как я могу пересмотреть свой код, чтобы приложение выводило нажатый слой наверх среди других?
Спасибо за помощь.