У меня есть uiscrollview, что я загружаю массив изображений, чтобы прокручивать изображения с эффектом, подобным эффекту фотографий в IOS. Я использую этот код:Включить масштабирование в uiscrollview с включенным пейджингом и прокруткой
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSString *imageFilePath = [path stringByAppendingPathComponent:@"newPics"];
fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imageFilePath];
if(fileExists){
imgs=[[NSMutableArray alloc]init];
[imgs addObject:[UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:@"newPics/pic1.png"]]];
[imgs addObject:[UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:@"newPics/pic2.png"]]];
[imgs addObject:[UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:@"newPics/pic3.png"]]];
[imgs addObject:[UIImage imageWithContentsOfFile:[path stringByAppendingPathComponent:@"newPics/pic4.png"]]];
CGSize imageSize;
imageSize.height = 648;
imageSize.width = 927;
self.scroll1.frame = CGRectMake(0,0,imageSize.width,imageSize.height);
self.scroll1.contentSize = CGSizeMake(imageSize.width * imgs.count, imageSize.height);
self.scroll1.minimumZoomScale=1.0;
self.scroll1.maximumZoomScale=3.0;
self.scroll1.pagingEnabled = YES;
self.scroll1.delegate=self;
CGFloat xPos = 0.0;
for (UIImage *image in imgs) {
imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(xPos, 0.0, imageSize.width, imageSize.height);
[self.scroll1 addSubview:imageView];
xPos += imageSize.width;
}
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
int positionScrollPrim = scrollView.contentOffset.x;
int positionScroll = positionScrollPrim/927 ;
imageView = [[UIImageView alloc] initWithImage:[imgs objectAtIndex:positionScroll]];
//UIImage *tmep = [imgs objectAtIndex:1];
return imageView;
}
Я не могу добиться нужного результата, а я не получаю кучу странного поведения, такие как неправильное масштабирование и не более прокрутки, когда я стараюсь, чтобы увеличить. Я предполагаю, что моя проблема находится в разделе viewForZoomingInScrollView, поэтому я попытался ее решить, используя приведенный выше код. Но я просто не могу заставить его работать. Что мне не хватает?
Вы не должны возвращать новый экземпляр в viewForZoomingInScrollView, вы должны вернуть существующий subview из своего scrollView – fnc12