viewForZoomingInScrollView工作但有额外的空格

时间:2013-10-03 02:24:23

标签: ios cocoa-touch zooming

我正在尝试实现类似功能的默认照片应用。

我添加了一个图像视图来滚动视图并在下面的方法中实现:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.fileDisplayImageView;
}

问题是虽然它正在缩放图像,但它在缩放时会在其边界周围添加空间。

以下是原始图片:

enter image description here

这是缩放后的图像,顶部添加了额外的空白区域:

enter image description here

任何人都可以建议,我该如何解决这个问题?

更新:附加示例代码:ZoomSample

更新:我的初步问题是在实施Robert建议的解决方案后解决的,而不是他:-)。

现在我的新问题是 - 图片没有出现在中心,但看起来与顶部对齐:

Image aligned at top

1 个答案:

答案 0 :(得分:3)

您的代码中存在一些问题,但您所描述的这个特定问题是因为您没有定义图像的大小,而是创建一个帧高等于屏幕的图像,所以这个空白区域就是描述,实际上是你要缩放的图像帧。

我在你的viewDidLoad中做了一些小改动,我希望它有所帮助:

self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"kittens"]];
     [self.imageView setContentMode:UIViewContentModeScaleAspectFit];

    self.scrollView.delegate = self;
    self.scrollView.contentSize = self.imageView.frame.size;
    self.scrollView.maximumZoomScale = 3.0;
    self.scrollView.minimumZoomScale = 0.36;

    [self.scrollView setZoomScale:0.36];

    [self.scrollView addSubview:self.imageView];