Ios 我不知道';我不明白为什么这个@selector是';行不通

Ios 我不知道';我不明白为什么这个@selector是';行不通,ios,uiview,action,selector,uigesturerecognizer,Ios,Uiview,Action,Selector,Uigesturerecognizer,我正在创建几个UIView,我添加了一个带有操作的uitagesturerecognizer,该操作假定调用视图控制器中的一个方法,但它似乎不起作用 -(void)setupFreeMoneyView { NSArray *array = @[@"Facebook", @"Twitter", @"SMS", @"Email"]; int index = 0; for (NSString *str in array) { UIImageView *imgVi

我正在创建几个
UIView
,我添加了一个带有
操作的
uitagesturerecognizer
,该操作假定调用
视图控制器中的一个方法,但它似乎不起作用

-(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()
检查了NSSelector fromstring()
是否有问题,但这不是原因

如果我将行
[imgView addGestureRecognizer:…
更改为
[freeView addGestureRecognizer:…]

我只是不明白为什么会发生这种情况。

试试这个

imgView.userInteractionEnabled=YES;


UIImageView
userInteractionEnabled
默认设置为否。

也许您需要为UIImageView设置userInteractionEnabled=YES

您需要将userInteractionEnabled=YES设置为YES,因为默认设置为NO。因此ImageView将接收到触摸交互查看您的IniWithTarget:参数。这就是您正在尝试调用的se选择器。请确保它与实现您要调用的选择器的选择器匹配。