第一步 設置代理
[m_zoomScrollView setDelegate:self];
第二步 重寫代理方法
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return m_coverImg;
}
第三步 設置放大縮小倍數
float minScale = CGRectGetWidth(m_zoomScrollView.bounds) / CGRectGetWidth(m_coverImg.frame);
float maxScale = CGRectGetWidth(m_coverImg.frame) / CGRectGetWidth(m_zoomScrollView.bounds);
m_zoomScrollView.minimumZoomScale = minScale;
m_zoomScrollView.maximumZoomScale = maxScale;
[m_zoomScrollView setZoomScale:minScale animated:YES];
設置圖片始終居中顯示:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
CGFloat offsetX = (m_zoomScrollView.bounds.size.width > m_zoomScrollView.contentSize.width)?
(m_zoomScrollView.bounds.size.width - m_zoomScrollView.contentSize.width) * 0.5 : 0.0;
CGFloat offsetY = (m_zoomScrollView.bounds.size.height > m_zoomScrollView.contentSize.height)?
(m_zoomScrollView.bounds.size.height - m_zoomScrollView.contentSize.height) * 0.5 : 0.0;
m_coverImg.center = CGPointMake(m_zoomScrollView.contentSize.width * 0.5 + offsetX,
m_zoomScrollView.contentSize.height * 0.5 + offsetY);
}