首先感谢您的帮助。AFNetworking UIGestureRecognizer里面setCompletionBlockWithSuccess
我试图用AFNetworking下载几个图像,问题是,当我尝试在块成功部分内添加手势识别器并且完成后出现错误。
这是我的代码。
- (void)loadPictures {
NSArray *listItems = [[_dictForData objectForKey:@"imgs"] componentsSeparatedByString:ITEM_SEPARATOR];
NSLog(@" == Num Images %d", [listItems count]-1);
NSMutableArray *imgNames= [[NSMutableArray alloc] init];
for(int i=0;i<[listItems count]-1;i++)
{
NSString *nameImage = [listItems[i] componentsSeparatedByString:TAG_SEPARATOR][1];
NSLog(@" == Name Image %@", nameImage);
[imgNames addObject: nameImage];
NSLog(@"== %@", [imgNames objectAtIndex:i]);
}
// Setup the array of UIImageViews
NSMutableArray *imgArray = [[NSMutableArray alloc] init];
for(NSString *name in imgNames) {
NSString *string = [NSString stringWithFormat:@"%@%@%@%@%@", SERVER, URL_FILES,[_dictForData objectForKey:@"id"],URL_IMAGES_HI,name];
NSURL *url = [NSURL URLWithString:string];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Response: %@", responseObject);
UIImageView *tempImageView;
tempImageView = [[UIImageView alloc] init];
tempImageView.contentMode = UIViewContentModeScaleAspectFit;
tempImageView.image = responseObject;
[imgArray addObject:tempImageView];
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected)];
singleTap.numberOfTapsRequired = 1;
[tempImageView setUserInteractionEnabled:YES];
[tempImageView addGestureRecognizer:singleTap];
if ([imgArray count] == [listItems count]-1) {
//CGSize pageSize = self.scrollView.frame.size; // scrollView is an IBOutlet for our UIScrollView
NSUInteger page = 0;
NSUInteger widthPicture = 100;
NSUInteger heightPicture = 100;
for(UIView *view in imgArray) {
[self.scrollView addSubview:view];
// This is the important line
//view.frame = CGRectMake(pageSize.width * page++ + 10, 0, pageSize.width - 20, pageSize.height);
view.frame = CGRectMake(widthPicture * page++, 0, widthPicture - 5, heightPicture);
// We're making use of the scrollView's frame size (pageSize) so we need to;
// +10 to left offset of image pos (1/2 the gap)
// -20 for UIImageView's width (to leave 10 gap at left and right)
}
//self.scrollView.contentSize = CGSizeMake(pageSize.width * [imgArray count], pageSize.height);
self.scrollView.contentSize = CGSizeMake((widthPicture + 5) * [imgArray count], 100);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Image error: %@", error);
}];
[requestOperation start];
}
}
-(void)tapDetected{
NSLog(@"single Tap on imageview");
}
编辑:
该错误是一个EXC_BAD_ACCESS(码= 1,地址= 0x7000000C)当我轻按ImageView的。
我需要轻拍所创建的图像并在imageview上显示单击。
我在做什么错了?或者我怎么解决它?
在此先感谢和抱歉,我Inglish
请提供错误信息! – 2014-10-04 10:41:56
我刚刚编辑它,谢谢。 – 2014-10-04 10:57:08
你没有添加UIImageView到任何视图.. !!! [myAwesomeView addSubview:tempImageView]; – 2014-10-04 11:14:45