2014-02-10 114 views
0

我創建幾個UIView的,我加UITapGestureRecognizeraction這就是想打電話給在viewController的方法,但它似乎並沒有工作。我不明白爲什麼這個@selector不工作

-(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

我檢查了是否NSSelectorFromString()通過使用正常的@selector()那不工作,但它不是原因。

如果我改變行[imgView addGestureRecognizer:...[freeView addGestureRecognizer:...]

我似乎就是不明白爲什麼會這樣,它工作。

+0

u需要設置userInteractionEnabled = YES,因爲它默認爲NO。所以觸摸交互將通過imageView – CoolMonster

+0

收到你的iniiWithTarget:參數。這是您試圖呼叫的選擇對象。確保它與實現您之後選擇器的那個匹配。 – verec

回答

1

試試這個

imgView.userInteractionEnabled = YES ;

UIImageViewuserInteractionEnabled被默認設置爲NO。

+0

哦,是的,我忘了...謝謝。 – Arbitur

1

也許你需要設置userInteractionEnabled = YES爲的UIImageView

相關問題