使用 uiscrollview 捏缩放

Posted

技术标签:

【中文标题】使用 uiscrollview 捏缩放【英文标题】:pinch to zoom using uiscrollview 【发布时间】:2011-12-09 03:11:00 【问题描述】:

我正在尝试使用只有背景图像的 uiscrollview 进行缩放。 首先这可能吗? 其次,我可以使用界面生成器来做到这一点吗?

基本上我所有的atm就是这个

    - (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    scrollView.backgroundColor = [UIColor blackColor];
    scrollView.delegate = self;
    scrollView.bounces = NO;
    scrollView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"auckland-300.jpg"]];
    UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"249a-134206f1d00-1342071f5d9.ImgPlayerAUCKLAND.png"]];
    scrollView.contentSize = image.frame.size;
    [scrollView addSubview:image];
    scrollView.minimumZoomScale = scrollView.frame.size.width / image.frame.size.width;
    scrollView.maximumZoomScale = 2.0;
    [scrollView setZoomScale:scrollView.minimumZoomScale];
    self.view = scrollView;


任何帮助将不胜感激

【问题讨论】:

看起来不错,似乎有什么问题?你设置它的方式,我不认为图像会放大,因为你把它设置为背景而不是 UIScrollView 的子元素。您应该将其添加为 UIImageView。 我的打字错误 - 如果要缩放图像,您应该将图像加载到 UIImageView 并将其添加到 UIScrollView。您还需要在滚动视图上设置最大和最小缩放值。如果这就是您所说的,请告诉我,我会将其添加为实际答案:) 你能检查我更新的代码吗..由于某种原因它仍然没有缩放 【参考方案1】:

你需要实现UIScrollViewDelegate方法。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;

并让它返回对您的图像视图的引用。这意味着您可能想要管理对存储在滚动视图中的UIImageView 的引用。

哦,是的,它在 Interface Builder 中是可行的。

【讨论】:

酷,我宁愿以编程方式进行,但尝试两种方式总是很好。我会检查一下,看看我能不能解决这个问题。谢谢你的回复:)【参考方案2】:

在这里查看我的演示应用程序:http://rexstjohn.com/facebook-like-ios-photo-modal-gallery-swipe-gestures/。

它演示了在滚动视图中缩放照片以及其他一些您可能需要的常用功能。享受吧。

【讨论】:

以上是关于使用 uiscrollview 捏缩放的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIScrollView 中捏缩放多个 UIImageView

在 ios7 中的多个图像的 UIScrollview 中捏缩放不起作用

UIScrollView 中的 UIImageView 不是全屏和捏缩放

iPhone:如何在捏缩放uiscrollview时重绘子视图

捏放大到 UITableViewCell 内的 UIImageView

UIScrollView双击缩放不捏