2009-09-28 2 views
0

Использование OS 3.1 Я размещаю изображение с отображением точек обнаружения (взятое из образцов набора прокрутки Apple от Scroll View) в UIScrollView и хочу дважды увеличивать изображение в представлении изображения при его появлении. Первый зум - сделать все изображение видимым, а второе масштабирование - приблизить к указанной области. То, что я прямо сейчас:Back-to-back UIScrollView масштабирование

- (void)viewDidLoad { 
    // After adding scroll view and image view 
    imageScrollView.minimumZoomScale = 0.5; 
    imageScrollView.maximumZoomScale = 2.75; 
    imageScrollView.zoomScale = 1.0; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:1];  
    [UIView setAnimationBeginsFromCurrentState:YES]; 
    [UIView setAnimationDelegate: self]; 
    [imageScrollView zoomToRect:[imageView frame] animated:YES]; 
    [UIView commitAnimations]; 

и следующее для обнаружения конца первого увеличения и для запуска второй:

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale { 
    selectedRect.origin.x = 60.0; 
    selectedRect.origin.y = 90.0; 
    selectedRect.size.width = 90.0; 
    selectedRect.size.height = 90.0; 

    imageScrollView.minimumZoomScale = 1.0; 
    imageScrollView.maximumZoomScale = 2.75; 
    imageScrollView.zoomScale = 2.5; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:1];  
    [UIView setAnimationBeginsFromCurrentState:YES]; 
    [UIView setAnimationDelegate: self]; 
    [imageScrollView zoomToRect:selectedRect animated:YES]; 
    [UIView commitAnimations]; 

Что происходит, что это вызывает бесконечный цикл и свиток многократно просматривайте «вибрирует» между двумя увеличенными точками. Что я должен делать по-другому? Спасибо.

ответ

1

Наверняка вам просто нужно проверить текущий zoomScale как первое действие в scrollViewDidEndZooming. Если вы уже увеличены, не делайте свой новый зум.

Смежные вопросы