gpt4 book ai didi

iphone - UIGestureRecognizers 的自定义操作(带有自定义参数)

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:00 24 4
gpt4 key购买 nike

我的问题的简短版本:

我不知道如何让我的 UITapGestureRecognizer 的“ Action ”接受额外的参数,并实际使用它们。

这是我的问题的概要:

我试图做到这一点,以便我的 iPad 应用程序记录(使用 NSLog)每当他们按下我的应用程序的 UIButtons 之一时发生的 UITouch 的坐标。触摸的位置需要相对于被触摸的按钮。

我做了什么:

我已经实现了一个 UITapGestureRecognizer 并将其添加到我的每个按钮中。我的问题是要使用的操作,因为它需要对每个按钮都是动态的。

我目前有这段代码:

 UITapGestureRecognizer *iconClickRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(logIcon:withTag:)];
[iconClickRecognizer setNumberOfTapsRequired:1];
[iconClickRecognizer setNumberOfTouchesRequired:1];
[iconClickRecognizer setDelegate:self];
[[self.view viewWithTag:1] addGestureRecognizer:iconClickRecognizer];

[iconClickRecognizer release];

当我知道这可行时,我将使用 for 循环将 iconClickRecognizer 添加到所有按钮的标签。

logIcon:(int)withTag 方法如下所示:

-(void)logIcon:(UIGestureRecognizer *)gestureRecognizer withTag:(int)tag {
NSLog(@"tag X: %f", [gestureRecognizer locationInView:(UIView*)[self.view viewWithTag:tag]].x);
NSLog(@"tag Y: %f", [gestureRecognizer locationInView:(UIView*)[self.view viewWithTag:tag]].y);
}

什么不起作用:

当我将标签硬编码到 logIcon 方法中时,它会正确记录信息。但是,我不知道如何使这个方法动态化,实际上使用了“tag”参数。

如有任何帮助,我们将不胜感激。

谢谢,亚历克斯

最佳答案

问题是您只能从目标/ Action 样式注册中获得一个参数,即发送者(在本例中为手势识别器本身)。您无法传递任意上下文。但您可以在操作中检查识别器的 view 属性并检查该 View 的 tag

关于iphone - UIGestureRecognizers 的自定义操作(带有自定义参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5034956/

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