【问题标题】:Back-to-back UIScrollView zooming背靠背 UIScrollView 缩放
【发布时间】:2010-12-02 03:45:36
【问题描述】:

使用 OS 3.1,我在 UIScrollView 中放置了一个点击检测图像视图(取自 Apple 的 Scroll View 套件示例),并希望在图像视图出现时放大两次。第一次缩放是使整个图像可见,第二次缩放是放大到指定区域。我现在拥有的是:

- (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];

这会导致无限循环,并且滚动视图在两个放大点之间反复“摆动”。我应该做些什么不同的事情?谢谢。

【问题讨论】:

    标签: objective-c iphone


    【解决方案1】:

    当然,您只需要检查当前的 zoomScale 作为 scrollViewDidEndZooming 中的第一个操作。如果您已经放大,请不要进行新的缩放。

    【讨论】:

      猜你喜欢
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 2017-07-06
      • 2012-07-08
      • 1970-01-01
      相关资源
      最近更新 更多