【问题标题】:iphone uiscrollview and uiimageview - setting initial zoomiphone uiscrollview 和 uiimageview - 设置初始缩放
【发布时间】:2010-04-21 17:30:42
【问题描述】:

我使用以下代码将图像加载到滚动视图中。图像始终以 100% 缩放加载。有没有办法将其设置为加载到另一个缩放级别,比如 0.37?

我尝试过 scrollView.zoomScale = .37 但它似乎不起作用

UIImageView *tempImage = [[UIImageView alloc]initWithImage:[UIImage imageWithData:data]];
        self.imageView = tempImage;

        scrollView.contentSize = CGSizeMake(imageView.frame.size.width , imageView.frame.size.height);
        scrollView.maximumZoomScale = 1;
        scrollView.minimumZoomScale = .37;
        scrollView.clipsToBounds = YES;
        scrollView.delegate = self;

        [scrollView addSubview:imageView];

【问题讨论】:

    标签: iphone objective-c uiscrollview uiimageview zooming


    【解决方案1】:

    缩放仅在您实现 viewForZoomingInScrollView: 委托回调时有效。

    -(UIView *) viewForZoomingInScrollView:(UIScrollView *)inScroll {
      return imageView;
    }
    

    【讨论】:

    • 我不知道这一点,它解决了我的问题。非常感谢!
    【解决方案2】:

    我想通了...我使用的是 scrollView.zoomScale = 0.37;在我加载图像更改代码之前,它工作得很好。

    UIImageView *tempImage = [[UIImageView alloc]initWithImage:[UIImage imageWithData:data]];
    self.imageView = tempImage;
    
    scrollView.contentSize = CGSizeMake(imageView.frame.size.width , imageView.frame.size.height);
    scrollView.maximumZoomScale = 1;
    scrollView.minimumZoomScale = .37;
    scrollView.clipsToBounds = YES;
    scrollView.delegate = self;
    [scrollView addSubview:imageView];
    scrollView.zoomScale = .37;
    

    【讨论】:

      【解决方案3】:

      您可以设置一个zoomScale property

      【讨论】:

      • 但请注意,正如 Brodie4598 所说,这应该在 imageView 添加到 scrollView 之后完成。
      • 还要注意,当您设置 zoomScale 属性时,将调用委托的 viewForZoomingInScrollView:,因此您需要确保它在该点返回正确的视图。
      • @paul_sns 所说的非常重要。缩放滚动视图时我的行为很奇怪。那是因为我在设置缩放比例后设置了图像。
      【解决方案4】:

      我也面临同样的问题..
      我使用了内置方法:scrollViewForImage

      这会将初始缩放设置为 5 级

      [self.scrollViewForImage setZoomScale:5 animated:YES];

      最小缩放级别的代码

      self.scrollViewForImage.minimumZoomScale=1;

      最大缩放级别代码

      self.scrollViewForImage.maximumZoomScale=12.0;

      希望这会有所帮助

      【讨论】:

        【解决方案5】:

        您必须在视图出现时设置初始缩放,而不是在视图加载时设置。

        【讨论】:

        • 我不明白你的意思。解释清楚。
        猜你喜欢
        • 2014-01-15
        • 2012-02-12
        • 1970-01-01
        • 2011-09-20
        • 2017-09-23
        • 2015-10-08
        • 2012-08-16
        • 2012-11-24
        • 1970-01-01
        相关资源
        最近更新 更多