2013-10-31 29 views
6

我已創建動態UIimage視圖,並UITapGestureRecognizer到視圖它的外觀像這樣通參數UITapGestureRecognizer

UIImageView *image = [[UIImageView alloc ] initWithFrame:CGRectMake(x, 0, 200, 150)]; 
     NSString *ImageURL = [str objectForKey:@"imageLink"]; 
     NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ImageURL]]; 
     image.image = [UIImage imageWithData:imageData]; 

     UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)]; 

     singleTap.numberOfTapsRequired = 1; 
     image.userInteractionEnabled = YES; 

     [image addGestureRecognizer:singleTap]; 

     [documentory addSubview:image]; 

和我這樣的

-(void)tapDetected:(UIGestureRecognizer *)recognizer{ 
    NSLog(@"single Tap on imageview"); 

} 

操作方法,我想傳遞一個字符串參數去tapDetected方法誰能告訴我怎麼做,非常感謝你

+0

你需要傳遞有什麼呢? – Balu

+0

我不確定我們可以向gestureRecognizer屬性添加參數。你想從哪個元素得到一個字符串? – zbMax

+0

取一個全局變量並根據需要更改該變量的值。 – Balu

回答

15

可以延長UITapGestureRecognizer用於保存更多的數據:

// MYTapGestureRecognizer.h 

@interface MYTapGestureRecognizer : UITapGestureRecognizer 

@property (nonatomic, strong) NSString *data; 

@end 


// MYTapGestureRecognizer.m 

@implementation MYTapGestureRecognizer 

@end 


// ===================== 

.... 

MYTapGestureRecognizer *singleTap = [[MYTapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)]; 

singleTap.data = @"Hello"; 

..... 


// ==================== 

-(void)tapDetected:(UITapGestureRecognizer *)tapRecognizer { 

MYTapGestureRecognizer *tap = (MYTapGestureRecognizer *)tapRecognizer; 

NSLog(@"data : %@", tap.data); 

} 
+0

很好。正是我在看什麼。 – nidhin

6

通過發件人,

- (void)tapDetected:(UIGestureRecognizer *)sender 
{ 
    NSLog(@"%@", sender.view); // imageview 
}