나는 UILabels의 NSMutableArray를 가지고있다. 사용자가 터치 할 때이 NSMutableArray에서 특정 UILabel을 선택하고이 터치 UILabel의 중심을 사용자가 손가락을 드래그하는 곳으로 이동할 수 있어야합니다.UILabel의 NSMutableArray에서 UILabel의 중심을 이동하는 방법은 사용자가 UILabel을 터치하고 드래그하는 위치에 따라 다릅니다.
나는 수행하여 내 bunchOfLabels있는 NSMutableArray의 특정 UILabel의 이동 수 있어요 : 사용자가 2, 3, 또는 무엇이든 라벨에 닿을 경우에도
UIGestureRecognizer *gestureRecognizer;
touchPosition = [gestureRecognizer locationInView:mainView];
NSLog(@"x: %f", touchPosition.x);
UILabel *temp;
temp = [bunchOfLabels objectAtIndex:0];
temp.center = touchPosition;
이 항상 첫 번째 레이블을 이동합니다.
하지만 나는 말할 수 있어야합니다. objectAtIndex : 4 UILabel은 어디에서나 사용자가 touch하고 objectAtIndex : 4 UILabel을 드래그 할 수 있어야합니다.
저는 초보자입니다. 제발 누군가 도와주세요. 감사!
추가 정보 : 저는 현재 UIPanGestureRecognizer을 사용하고 ,이 같은 :
-(void)setupLabels {
bunchOfLabels = [[NSMutableArray alloc] initWithCapacity:[characters count]];
for (int i=0; i < [characters count]; i++) {
int xPosition = arc4random() % 518;
int yPosition = arc4random() % 934;
UILabel *tempCharacterLabel = [[UILabel alloc] initWithFrame:CGRectMake(xPosition, yPosition, 60, 60)];
tempCharacterLabel.text = [characters objectAtIndex:i]; // characters is another NSMutableArray contains of NSStrings
[tempCharacterLabel setUserInteractionEnabled:YES];
[bunchOfLabels addObject:tempCharacterLabel];
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panElement:)];
[panGesture setMaximumNumberOfTouches:2];
[[bunchOfLabels objectAtIndex:i] addGestureRecognizer:panGesture];
}
}
-(void)panElement:(UIPanGestureRecognizer *)gestureRecognizer
{
UILabel *temp;
temp = [bunchOfLabels objectAtIndex:1];
temp.center = touchPosition;
}
모든 것은 지금까지 OK,하지만 난 코드에서 (bunchOfLabels의 특정 UILabel의 이동 할 수있는에 붙어했습니다 objectAtIndex : 1).