2013-04-24 106 views
0

我想通過指定在scrollview的座標內的矩形來放大UIScrollView。然而,它沒有按預期工作。我認爲這是因爲縮放比例或者我錯過了轉換。我試圖縮放的滾動視圖來自Apple的示例PhotoScroller - ImageScrollView。此外,我複製的代碼來生成一幀從蘋果公司的例子來縮放,以及:UIScrollView放大到矩形

- (CGRect)zoomRectForScrollView:(UIScrollView *)scrollView withScale:(float)scale withCenter:(CGPoint)center { 

    CGRect zoomRect; 

    // The zoom rect is in the content view's coordinates. 
    // At a zoom scale of 1.0, it would be the size of the 
    // imageScrollView's bounds. 
    // As the zoom scale decreases, so more content is visible, 
    // the size of the rect grows. 
    zoomRect.size.height = scrollView.frame.size.height/scale; 
    zoomRect.size.width = scrollView.frame.size.width/scale; 

    // choose an origin so as to get the right center. 
    zoomRect.origin.x = center.x - (zoomRect.size.width/2.0); 
    zoomRect.origin.y = center.y - (zoomRect.size.height/2.0); 

    return zoomRect; 
} 

我們實際上放大的代碼如下:

CGPoint scrollRectCenter = CGPointMake(rect.origin.x + (rect.size.width /2) , 
             rect.origin.y + (rect.size.height/2)); 
CGFloat newZoomScale = self.imageScrollView.zoomScale * 1.3f; 
newZoomScale = MIN(newZoomScale, self.imageScrollView.maximumZoomScale); 
CGRect zoomToRect = [self zoomRectForScrollView:self.imageScrollView withScale:newZoomScale withCenter:scrollRectCenter]; 
[self.imageScrollView zoomToRect:zoomToRect animated:YES]; 

我如何可以放大到一個矩形採取在考慮縮放的imageView縮放比例,以便它適合正確?

我想要實現的是照片應用的效果,其中裁剪網格被移動並且scrollview縮放到那個矩形。

有沒有人知道鏈接或代碼示例來實現類似的照片應用程序的效果?非常感謝。

回答

0

讓我猜...你已經實現了- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale委託方法。

您的問題發生的原因是,當調用此方法時,scrollview的縮放比例被重置爲1.我不知道爲什麼,請不要問我。

您可以通過兩種方式解決這個問題:

  1. 保存成規模的變量,並在- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale您設定的變量爲適當的規模,跟你的規模計算。
  2. 你不執行血腥的方法,除非你有你的滾動視圖多個視圖每個人都可以單獨放大它不值得的(畢竟你可以scrollview.zoomScale訪問縮放比例)

如果你不實施該方法忽略這個答案:)