gpt4 book ai didi

ios - 如何在 UILabel 的 NSMutableArray 中移动 UILabel 的中心,取决于用户触摸并将 UILabel 拖动到的位置?

转载 作者:行者123 更新时间:2023-11-28 20:43:51 27 4
gpt4 key购买 nike

我有一个 UILabel 的 NSMutableArray。我需要能够在用户触摸时选择此 NSMutableArray 中的特定 UILabel,并将此触摸 UILabel 的中心移动到用户将手指拖动到的位置。

我可以通过以下方式在我的 bunchOfLabels NSMutableArray 中移动特定的 UILabel:

UIGestureRecognizer *gestureRecognizer;
touchPosition = [gestureRecognizer locationInView:mainView];
NSLog(@"x: %f", touchPosition.x);

UILabel *temp;
temp = [bunchOfLabels objectAtIndex:0];
temp.center = touchPosition;

这将始终移动第一个标签,即使用户触摸了第二个、第三个或任何标签。

但我需要能够说,将 objectAtIndex:4 UILabel 移动到用户触摸并拖动 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;
}

到目前为止一切正常,但我一直坚持能够移动 bunchOfLabels 中的特定 UILabel(在上面的代码中,objectAtIndex:1)。

最佳答案

欢呼!!!知道了!我按如下方式制作了 panElement,现在可以使用了!

-(void)panElement:(UIPanGestureRecognizer *)gesture
{
UILabel *tempLabel = (UILabel *)gesture.view;
CGPoint translation = [gesture translationInView:tempLabel];

tempLabel.center = CGPointMake(tempLabel.center.x + translation.x, tempLabel.center.y + translation.y);

[gesture setTranslation:CGPointZero inView:tempLabel];
}

感谢那些试图回答我的问题的人!

关于ios - 如何在 UILabel 的 NSMutableArray 中移动 UILabel 的中心,取决于用户触摸并将 UILabel 拖动到的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251359/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com