【问题标题】:Zooming UIImage in a UIScrollView在 UIScrollView 中缩放 UIImage
【发布时间】:2013-02-13 00:07:25
【问题描述】:

我目前有一个实现 UIScrollView 的自定义类。

我创建了一个 UIImageView 并将其添加到 UIScrollView 的子视图中。它可以完美地垂直和水平滚动,但似乎忽略了缩放的东西。这是我的代码:

- (void) setUpBoard
{
    // add board
    UIImageView *imageHolder = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"grid.jpg"]];
    [self addSubview:imageHolder];
    self.contentSize = CGSizeMake(imageHolder.frame.size.width, imageHolder.frame.size.height);
    self.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    self.maximumZoomScale = 5.0;
    self.minimumZoomScale = 0.2;
    self.zoomScale = 0.7;
    self.clipsToBounds = YES;
}

如何使用标准捏合手势使其缩放?任何帮助表示赞赏。谢谢!

【问题讨论】:

    标签: objective-c uiscrollview


    【解决方案1】:

    来自UIScrollView Class Reference Overview

    UIScrollView 类可以有一个必须采用UIScrollViewDelegate 协议的委托。要使缩放和平移工作,代理必须同时实现viewForZoomingInScrollView:scrollViewDidEndZooming:withView:atScale:;此外,最大(maximumZoomScale)和最小(minimumZoomScale)缩放比例必须不同。

    我怀疑您没有为滚动视图分配委托,或者委托没有实现这两种方法。

    【讨论】:

    • 我还是个新手,不确定如何实现委托。在我的头文件中,我有@interface ASScrollBoard : UIScrollView <UIScrollViewDelegate> 在我的实现文件中,我实现了viewForZoomingInScrollView:scrollViewDidEndZooming:withView:atScale: 这两种方法。首先,我将'self' 作为UIView 返回。我在这里还缺少什么?谢谢。
    • 如果你想让滚动视图成为它自己的委托,你需要设置它,通过在一些初始化方法中执行self.delegate = self(比如setUpBoard)。您还需要将图像视图存储在实例变量中,以便可以在viewForZoomingInScrollView: 中返回它。您的 scrollViewDidEndZooming:withView:atScale: 方法可以为空。
    • 非常感谢!那工作得很好。非常感谢您的帮助。
    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多