2013-10-28 37 views
1

我在UIScrollView中顯示圖像與UIImageView.I爲每個ImageView添加了UIGestureRecognizer,並且我設置了圖像視圖的標記屬性。點擊特定的圖像視圖。但我只獲得最後ImageView.Pasting代碼標籤下面。您的幫助將不勝感激。在UIScrollview上顯示圖像在水平上在ipad上並獲取水龍頭上的圖像標記

UITapGestureRecognizer *tapRecognizer; 
tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewDidTapped:)]; 
tapRecognizer.numberOfTapsRequired = 1; 
tapRecognizer.delegate = self; 
scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(5, 60, self.view.bounds.size.width-20, self.view.bounds.size.height-100)]; 

scrollView.delegate = self; 
scrollView.pagingEnabled = YES; 
scrollView.scrollEnabled = YES; 
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
[scrollView setCanCancelContentTouches:YES]; 
[scrollView setUserInteractionEnabled:YES]; 

float width; 
for (NSDictionary *dict in object) { 
UIImageView *backgroundImageView = [[UIImageView alloc]initWithFrame:CGRectMake(width, 0,  self.view.bounds.size.width-20, self.view.bounds.size.height-40)]; 
NSDateFormatter *dateformatter = [[NSDateFormatter alloc]init]; 
[dateformatter setDateFormat:@"yyyy-MM-dd"]; 
[dateformatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
NSDate *date = [dateformatter dateFromString:[NSString stringWithFormat:@"%@",[dict objectForKey:@"id"]]]; 
NSTimeInterval timeStamp = [date timeIntervalSince1970]; 
backgroundImageView.tag = timeStamp; 
[backgroundImageView setUserInteractionEnabled:YES]; 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[dict objectForKey:@"coverImage"]]]; 
AFImageRequestOperation *operation = [AFImageRequestOperation imageRequestOperationWithRequest:request 
imageProcessingBlock:nil 
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){ 
backgroundImageView.image = image; 
} 
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { 
NSLog(@"Error %@",error); 
}]; 
[operation start]; 
width = width + backgroundImageView.frame.size.width; 

[backgroundImageView addGestureRecognizer:tapRecognizer]; 
[imageViewArray addObject:backgroundImageView]; 
[scrollView addSubview:backgroundImageView]; 
} 

而對於越來越手勢事件

- (void)imageViewDidTapped:(UIGestureRecognizer *)gesture{ 
UITapGestureRecognizer *tapGesture = (UITapGestureRecognizer *)gesture; 

UIImageView *tappedImageView = (UIImageView *)[tapGesture view]; 
NSDateFormatter *dateformatter = [[NSDateFormatter alloc]init]; 
[dateformatter setDateFormat:@"yyyy-MM-dd"]; 
[dateformatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
NSLog(@"Issue Date :%@",[dateformatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:tappedImageView.tag]]); 

} 

回答

1

添加方法你有很多的ImageView,但只有一個UITapGestureRecognizer。你應該爲每個imageView添加一個手勢識別器。

+0

,你看,我已經添加手勢識別每個圖像view..and做新的手勢識別每個新的圖像視將是不那麼合乎邏輯 – Harshavardhan

+0

一兩件事,NSTimeInterval是double類型和視圖的標籤不能用於存儲它。 – KudoCC

+0

我寫的代碼工作正常,但我只是最後一次imageView的點擊手勢事件不是預期的。 – Harshavardhan

0

在for循環中創建UITapGestureRecognizer

for (NSDictionary *dict in object) { 

    UITapGestureRecognizer *tapRecognizer; 
    tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewDidTapped:)]; 

    tapRecognizer.numberOfTapsRequired = 1; 

    tapRecognizer.delegate = self; 

    // your code for image imageview 

    [imageview addGestureRecognizer:tapRecognizer]; 
} 
相關問題