我有一个包含多个部分的图像。我将尝试用下图解释:
--|----------|---------|---
| 1 | 2 |
| | |
--|----------|---------|---
| 3 | 4 |
| | |
--|----------|---------|---
在上图中,1,2,3和4是大图像的部分。我在UIScrollView中使用UIImageView。我一次向用户显示一个部分。因此看起来这些部分是单独的图像。如果我正在显示第3部分,我隐藏了图像的所有部分,但是第3部分并更改了图像坐标,使得第3部分出现在屏幕中间。直到现在,一切都运转良好。现在我需要在部分上实现缩放。缩放一个部分后,用户将只能在该部分内滚动,并且不允许他们在缩放部分之外滚动。我无法实现这个东西,好像我设置了uiscrollview的contentoffset和contentsize属性,它将图像从屏幕上移除。
有人可以建议我如何实现这个吗?
下面是我用来定位滚动视图的代码。
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
float updatedCurrFrameX = originalFrame.origin.x*[scroll zoomScale];
float updatedCurrFrameY = originalFrame.origin.y*[scroll zoomScale];
float updatedCurrFrameWidth = originalFrame.size.width*[scroll zoomScale];
float updatedCurrFrameHeight = originalFrame.size.height*[scroll zoomScale];
CGRect visibleRect=CGRectMake(updatedCurrFrameX, updatedCurrFrameY, updatedCurrFrameWidth, updatedCurrFrameHeight);
scroll.contentSize= visibleRect.size;
scroll.contentOffset=visibleRect.origin;
}
答案 0 :(得分:0)
实施UIScrollViewDelegate
以便在用户缩放(scrollViewDidEndZooming:withView:atScale:
)时收到通知,然后通过设置contentSize
和contentOffset
进行相应操作。如果通过调整contentSize和offset无法达到预期效果,则可以考虑在缩放时更改scrollView的documentView。