UIScrollView setZoomScale, не работающий?

Я - struggeling со своим UIScrollview, чтобы заставить это увеличивать базовый UIImageView. По моему мнению, контроллер я установил

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
 return myImageView;
}

В viewDidLoad методе я пытаюсь установить zoomScale на 2 следующим образом (отметьте UIImageView, и Изображение установлено в Интерфейсном Разработчике):

- (void)viewDidLoad {
 [super viewDidLoad];

 myScrollView.contentSize = CGSizeMake(myImageView.frame.size.width, myImageView.frame.size.height);
 myScrollView.contentOffset = CGPointMake(941.0, 990.0);
 myScrollView.minimumZoomScale = 0.1;
 myScrollView.maximumZoomScale = 10.0;
 myScrollView.zoomScale = 0.7;
 myScrollView.clipsToBounds = YES;
 myScrollView.delegate = self;

 NSLog(@"zoomScale: %.1f, minZoolScale: %.3f", myScrollView.zoomScale, myScrollView.minimumZoomScale);
}

Я попробовал несколько изменений этого, но NSLog всегда показывает zoomScale 1,0.

Какие-либо идеи, где я завинчиваю этого?

8
задан Peter Hosey 13 April 2010 в 17:30
поделиться

2 ответа

Наконец-то я заставил это работать. проблема была вызвана тем, что вызов делегата находился в конце. Теперь я переместил его и .... поехали.

Новый код выглядит так:

- (void)viewDidLoad {
 [super viewDidLoad];

 myScrollView.delegate = self;
 myScrollView.contentSize = CGSizeMake(myImageView.frame.size.width, myImageView.frame.size.height);
 myScrollView.contentOffset = CGPointMake(941.0, 990.0);
 myScrollView.minimumZoomScale = 0.1;
 myScrollView.maximumZoomScale = 10.0;
 myScrollView.zoomScale = 0.7;
 myScrollView.clipsToBounds = YES;
}
21
ответ дан 5 December 2019 в 07:10
поделиться

Вот еще один пример, который я сделал. В этом примере используется изображение, включенное в папку ресурсов. По сравнению с вашим примером этот добавляет UIImageView в представление как вложенное представление, а затем изменяет масштаб всего представления.

-(void)viewDidLoad{

[super viewDidLoad];

UIImage *image = [UIImage imageNamed:@"random.jpg"];

imageView = [[UIImageView alloc] initWithImage:image];

[self.view addSubview:imageView];

[(UIScrollView *) self.view setContentSize:[image size]];

[(UIScrollView *) self.view setMaximumZoomScale:2.0];

[(UIScrollView *) self.view setMinimumZoomScale:0.5];

}
1
ответ дан 5 December 2019 в 07:10
поделиться