사용자가 버튼을 탭하고 앱이 이미지 레이어 (UIImageView)를 인스턴스화하는 앱이 있습니다. 사용자가 선택한 이미지 레이어를 탭으로 이동시킬 수 있도록 만들고 싶습니다. 여기에 몇 가지 주제를 읽은 후 UIPanGestureRecognizer을 사용하여 선택한 이미지 레이어를 이동할 수 있음을 알게되었습니다.UIPanGestureRecognizer 및 BringSubviewToFront
- (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 *) 보낸 사람보기]]가 효과적이지 않은 것 같습니다. 그렇다면 응용 프로그램이 탭된 레이어를 다른 레이어로 이동하도록 코드를 수정하려면 어떻게해야합니까?
도움 주셔서 감사합니다.
감사합니다. 하지만 내 코드와 다른 점은 무엇입니까? –
@TBlue, 당신 말이 맞아요, 나는 똑바로 생각하지 못했습니다 ...하지만 여전히 질문을 남겨두고 있습니다, 왜 당신은 일하지 않습니까? 내 작품, 그리고 기본적으로 너와 같은 일을하고있어 ... – foundry
@ T 블루 - 내가 당신의 오류를 발견, 내 업데이 트를 참조하십시오 ... – foundry