我不明白为啥这个@selector 不起作用
Posted
技术标签:
【中文标题】我不明白为啥这个@selector 不起作用【英文标题】:I don't get why this @selector isn't working我不明白为什么这个@selector 不起作用 【发布时间】:2014-02-10 09:51:42 【问题描述】:我正在创建几个UIView
,我添加了一个UITapGestureRecognizer
和一个action
,假设调用viewController
中的一个方法,但它似乎不起作用。
-(void)setupFreeMoneyView
NSArray *array = @[@"Facebook", @"Twitter", @"SMS", @"Email"];
int index = 0;
for (NSString *str in array)
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(100*index++, 0, 100, 100)];
[imgView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@Logo", str]]];
[imgView addGestureRecognizer:[[UITapGestureRecognizer alloc]
initWithTarget:self
action:NSSelectorFromString([NSString stringWithFormat:@"postTo%@", str])]];
[freeView addSubview:imgView];
freeView
是在MainStoryboard
中创建的UIView
。
我已经通过使用普通的 @selector()
检查了它是否是 NSSelectorFromString()
,这不起作用,但这不是原因。
如果我将[imgView addGestureRecognizer:...
更改为[freeView addGestureRecognizer:...]
,它确实有效
我似乎不明白为什么会这样。
【问题讨论】:
你需要设置 userInteractionEnabled=YES 因为它默认为 NO。所以触摸交互会被 imageView 接收到 看看你的 iniiWithTarget: 参数。这就是您尝试调用其选择器的对象。确保它与实现您所追求的选择器的那个匹配。 【参考方案1】:试试这个
imgView.userInteractionEnabled = YES ;
UIImageView
中的userInteractionEnabled
默认设置为 NO。
【讨论】:
【参考方案2】:也许你需要为 UIImageView 设置 userInteractionEnabled = YES
【讨论】:
以上是关于我不明白为啥这个@selector 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
我不明白为啥这段代码不起作用 for int 错误 [重复]