2013-10-31 3 views
6

i erstellt haben dynamische UIimage Ansicht und und UITapGestureRecognizer der Ansicht sein Aussehen wie diesesPass Parameter 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]; 

und meine Aktion-Methode wie diese

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

} 

Ich möchte einen String-Parameter übergeben tapDetected Methode kann mir jemand sagen, wie dies zu tun, ich danke Ihnen sehr viel

+0

, was Sie dort passieren müssen? – Balu

+0

Ich bin nicht sicher, ob wir den GestenRecognizer-Eigenschaften einen Parameter hinzufügen können. Aus welchem ​​Element möchten Sie eine Zeichenfolge erhalten? – zbMax

+0

nehmen Sie eine globale Variable und ändern Sie den Wert dieser Variablen wie Sie wollen. – Balu

Antwort

15

Sie können eine UITapGestureRecognizer erweitern, um weitere Daten halten:

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

Great übergeben. Genau das, was ich gesucht habe. – nidhin

6

Übergeben Sie den Absender,

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