2013-02-13 82 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