Это должно работать: -)
- Создать UIImage
- Сделать UIImageView, содержащий изображение
- Поместить UIImageView в UIScrollView
- Установите для contentSize UIScrollView размер UIImage
- Не забудьте вернуть UIimageView в
viewForZoomingInScrollView
Вставьте это в свой файл .h:
UIImageView *imageView;
@property (nonatomic, retain) UIImageView *imageView;
И не забудьте синтезировать и выпустить imageView
Поместите это туда, где вы хотите сделать представление прокрутки:
UIImage *image = [UIImage imageNamed:@"myImage.jpg"];
imageView = [[UIImageView alloc] initWithImage:image];
[imageView setFrame:CGRectMake(0, 0, image.size.width, image.size.height)];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[scrollView setMinimumZoomScale:0.5];
[scrollView setMaximumZoomScale:3.0];
[scrollView setContentSize:CGSizeMake(image.size.width, image.size.height)];
[scrollView setDelegate:self];
[scrollView addSubview:imageView];
[[self view] addSubview:scrollView];
[scrollView release];
Добавьте метод делегата UIScrollView
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return imageView;
}
ОБНОВЛЕНИЕ:
Я неправильно понял вопрос при добавлении вышеуказанного решения.Это должно сделать это: -)
kScrollViewAddSize
- это константа, которая определяет сумму, добавляемую к размеру UIScrollView.
В вашем .h файле вы должны добавить следующее:
UIImageView *imageView;
UIScrollView *scrollView;
Не забудьте синтезировать и выпустить их.
- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *image = [UIImage imageNamed:@"apple.jpg"];
imageView = [[UIImageView alloc] initWithImage:image];
[imageView setFrame:CGRectMake(kScrollViewAddSize / 2, kScrollViewAddSize / 2, image.size.width, image.size.height)];
int width = imageView.frame.size.width + kScrollViewAddSize;
int height = imageView.frame.size.height + kScrollViewAddSize;
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake((self.view.frame.size.width - width) / 2, (self.view.frame.size.height - height) / 2, width, height)];
[scrollView setMinimumZoomScale:0.5];
[scrollView setMaximumZoomScale:3.0];
[scrollView setBackgroundColor:[UIColor redColor]];
[scrollView setContentSize:CGSizeMake(image.size.width, image.size.height)];
[scrollView setDelegate:self];
[scrollView addSubview:imageView];
[[self view] addSubview:scrollView];
}
- (void)scrollViewDidZoom:(UIScrollView *)_scrollView {
int width = imageView.frame.size.width + kScrollViewAddSize;
int height = imageView.frame.size.height + kScrollViewAddSize;
[scrollView setFrame:CGRectMake((self.view.frame.size.width - width) / 2, (self.view.frame.size.height - height) / 2, imageView.frame.size.width + kScrollViewAddSize, imageView.frame.size.height + kScrollViewAddSize)];
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)_scrollView {
return imageView;
}
Добавьте часть в viewDidLoad
, где вы хотите создать свой UIScrollView, и добавьте два метода делегата.