이 사이트는 UIImageView를 이동하는 방법을 설명하는 데 매우 유용합니다. 하나의 UIImageView 그리고 나를 위해 삶의 방법에 대한 예제를 찾을 수 없습니다.UIPanGestureRecognizer를 사용하여 2 개 이상의 UIImageViews를 이동하는 방법
나는 UIView에 UIPanGestureRecognizer가 할당되어 있지만 UIView 내에서 UIImageView를 패닝 할 수있는 대신 아래 코드 에서처럼 UIView를 사용하여 하나의 UIImageView 만 패닝하는 코드를 알고 있습니다.
다음은 내가 사용한 코드입니다.
- (void)viewDidLoad {
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(move:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
[_canvas addGestureRecognizer:panRecognizer];
[super viewDidLoad]; }
-(void)move:(id)sender {
CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:_canvas];
if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan) {
_firstX = [photoImage center].x;
_firstY = [photoImage center].y;
}
translatedPoint = CGPointMake(_firstX+translatedPoint.x, _firstY+translatedPoint.y);
[photoImage setCenter:translatedPoint]; }
나는 광 화상라는있는 UIImageView를 이동하지만, 코드가 하나 개 이상있는 UIImageView를 이동하기 위해 어떻게 보이는지 알 수 있습니다.
도움을 주셔서 감사합니다.
도움 주셔서 감사합니다. @ 야친. 여기 수정 된 코드가 있지만, photoImage2 UIImageView 만 이동합니다. - (보이드)의 viewDidLoad { ... [광 화상 setUserInteractionEnabled : YES]; [photoImage2 setUserInteractionEnabled : YES]; [photoImage addGestureRecognizer : panRecognizer]; [photoImage2 addGestureRecognizer : panRecognizer]; ...} - (void) 이동 : (id) 보낸 사람 { ... _firstX = [(UIPanGestureRecognizer *) 보낸 사람 locationInView : self.view] .x; _firstY = [(UIPanGestureRecognizer *) 보낸 사람 locationInView : self.view] .y; } ... [(UIPanGestureRecognizer *) 보낸 사람보기] .center = translatedPoint; } – gobsofrob
UIPanGestureRecognizer * 인식 자 = (UIPanGestureRecognizer *) 보낸 사람; UIView * selectedView = [인식 자보기]; \t CGPoint point = [인식 자 translationInView : self.view]; \t if ([인식기 상태] == UIGestureRecognizerStateBegan) { \t firstX = selectedView.center.x; \t firstY = selectedView.center.와이; } \t point = CGPointMake (firstX + point.x, firstY + point.y); [selectedView setCenter : point]; \t if ([인식기 상태] == UIGestureRecognizerStateEnded) { \t [selectedView setCenter : point]; } 나는이 코드를 사용하고 얼마나 많은 뷰가 있더라도 상관없이 작동한다. – Hanon