gpt4 book ai didi

ios - 知道 UITapGestureRecognizer 从 UIView 发送什么标签

转载 作者:行者123 更新时间:2023-11-28 22:01:19 25 4
gpt4 key购买 nike

我不知道我的观点有什么标签。我正在尝试为我的 UITapGestureRecognizers 使用一种方法,然后从 View 中获取 tag。但它不起作用。我试过这两个:

-(void)playGame:(UITapGestureRecognizer *)gr{ // Method that is getting called off my TapGestureRecognizer
[self performSegueWithIdentifier:@"GameSegue" sender:self]; // Calling the segue
}

-(void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender{
UITapGestureRecognizer *tap = (UITapGestureRecognizer *)sender; // Try casting it to an GR
NSLog(@"%i",tap.view.tag);

UIView *view = (UIView *)sender; // Try casting it to an view for the tag
NSLog(@"%i",view.tag);
}

但没有任何效果。我怎么解决这个问题?转换为 UIView 只会给我 self 而不是用于获取标签的 UIView。所以我得到 Tag is not recognized for that instance。

最佳答案

您应该发送 gesture recogniser而不是发送 self .使用 gr而不是 self因为你应该通过 gr作为发件人和来自 gr您可以使用 sender.view.tag 获取 View 标签

-(void)playGame:(UITapGestureRecognizer *)gr{ // Method that is getting called off my TapGestureRecognizer
[self performSegueWithIdentifier:@"GameSegue" sender:gr]; // Calling the segue
}


-(void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender{

//In case of multiple segue its good practice to check identifier
if([identifier isEqualToString:@"GameSegue"]){

UITapGestureRecognizer *tap = (UITapGestureRecognizer *)sender; // Try casting it to an GR
//This will give your tag
NSLog(@"%i",tap.view.tag);
}

}

传递 self意味着你正在通过整个 viewviewController在任何情况下self被使用。但是作为gr包含添加它的 View ,因此它会给你正确的标签。在你的代码中 performSegueWithIdentifier这条线 UITapGestureRecognizer *tap = (UITapGestureRecognizer *)sender;将获得 View 或其他东西,因此您试图将错误转换为特征识别器。

关于ios - 知道 UITapGestureRecognizer 从 UIView 发送什么标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25004119/

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