Добавление нескольких UIImages для включенного подкачки UIScrollView из ALAssetLibrary
У меня проблема с отображением изображений после выборки из ALAssetLibrary. Моя проблема в том, что если есть одно изображение, то оно подходит, но если есть несколько изображений, то появляется только последнее изображение, но не предыдущие изображения. Я полагаю, что есть проблема в цикле и не могу найти.
Пожалуйста, дайте мне знать, если кто-нибудь разрешит это.
mainScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 70, self.view.frame.size.width, self.view.frame.size.height)];
mainScrollView.pagingEnabled = YES;
mainScrollView.delegate=self;
mainScrollView.showsHorizontalScrollIndicator = NO;
mainScrollView.showsVerticalScrollIndicator = NO;
CGRect innerScrollFrame = mainScrollView.bounds;
for (NSInteger i = 0; i < images.count; i++) {
imageForZooming=[[UIImageView alloc]init];
if ([maincheck isEqualToString:@"YES"]) {
NSURL*url=[NSURL URLWithString:[images objectAtIndex:i]];
[library assetForURL:url resultBlock:^(ALAsset *asset)
{
UIImage *copyOfOriginalImage = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]];
[imageForZooming setImage:copyOfOriginalImage];
}
failureBlock:^(NSError *error)
{
NSLog(@"the error is %@",error);
}];
}
else{
[imageForZooming setImageWithURL:[NSURL URLWithString:[images objectAtIndex:i]]];
}
UITapGestureRecognizer*t=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(showblack:)];
t.numberOfTapsRequired=1;
imageForZooming.userInteractionEnabled=YES;
[imageForZooming addGestureRecognizer:t];
imageForZooming.frame=CGRectMake(0, 50, 320, 200);
imageForZooming.contentMode=UIViewContentModeScaleAspectFit;
imageForZooming.tag = VIEW_FOR_ZOOM_TAG;
pageScrollView = [[UIScrollView alloc] initWithFrame:innerScrollFrame];
pageScrollView.minimumZoomScale = 1.0f;
pageScrollView.maximumZoomScale = 4.5f;
pageScrollView.zoomScale = 1.0f;
pageScrollView.contentSize = imageForZooming.bounds.size;
pageScrollView.delegate = self;
pageScrollView.showsHorizontalScrollIndicator = NO;
pageScrollView.showsVerticalScrollIndicator = NO;
[pageScrollView addSubview:imageForZooming];
[mainScrollView addSubview:pageScrollView];
if (i < images.count-1) {
innerScrollFrame.origin.x += innerScrollFrame.size.width;
}
}
mainScrollView.contentSize = CGSizeMake(innerScrollFrame.origin.x + innerScrollFrame.size.width,mainScrollView.bounds.size.height);
[self.view addSubview:mainScrollView];
1 ответ
Здесь вы не установили размер содержимого представления прокрутки.
[scrollView setContentSize:CGSizeMake(numberOfImages * scrollView.frame.size.width, scrollView.frame.size.width)];
А также вы должны изменить смещение X (если горизонтальная прокрутка) для каждого imageView перед добавлением в scrollView.
Кроме того, вы не добавили imageForZooming к любому scrollView здесь.
Посмотрите здесь, чтобы загрузить изображения из ALAssetLibrary.