2013-02-13 81 views
0

我目前有一个实现UIScrollView的自定义类。在UIScrollView中缩放UIImage

我创建了一个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; 
} 

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

回答

0

UIScrollView Class Reference Overview

UIScrollView类可以有必须采取UIScrollViewDelegate协议的委托。为了缩放和平移工作,委托人必须实现viewForZoomingInScrollView:scrollViewDidEndZooming:withView:atScale:;此外,最大(maximumZoomScale)和最小(minimumZoomScale)缩放比例必须不同。

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

+0

我仍然是一个新手,我不知道如何实现委托。在我的头文件,我有'@interface ASScrollBoard:UIScrollView的' 的我在执行文件,我已经实现了两个方法'viewForZoomingInScrollView:'和'scrollViewDidEndZooming:withView:atScale:' 为先,我作为UIView返回'自我'。我还有什么在这里错过?谢谢。 – user2056479 2013-02-13 03:26:06

+0

如果你想让滚动视图成为它自己的委托,你需要通过在某些初始化方法(比如'setUpBoard')中执行'self.delegate = self'来设置它。您还需要将图像视图存储在实例变量中,以便您可以在'viewForZoomingInScrollView:'中将其返回。你的'scrollViewDidEndZooming:withView:atScale:'方法可以是空的。 – 2013-02-13 03:37:39

+0

非常感谢!这工作完美。我非常感谢帮助。 – user2056479 2013-02-13 05:43:00