iPhone - 滚动一个UIScrollView保持移动
问题描述:
我有一个UIScrollView对象。在这个滚动条内部,我有一张图片,在图片上有一些对象(如图片的子视图),就像Photoshop组合中的图层一样。所以,如果我放大图片,对象将会放大。如果我滚动图片,对象滚动。iPhone - 滚动一个UIScrollView保持移动
现在考虑这个问题:我在放大图像时,图像现在比iPad屏幕更大。我看到了图片的上半部分。我触摸画面上方的对象并将其拖动到屏幕底部。我的意图是拖放图片底部的拖动对象,但当图片放大时,我必须拖动元素到屏幕底部,释放它,向上滚动图片,然后继续拖动对象。
我想是这样的:我开始拖动,当我在屏幕的边界到达,滚动条滚动的开始那名向下或向上的图像自动显示部分。
什么我需要的是知道RECT是可见的,一种scrollRectToVisible的逆...
考虑到的图片可以在任何级别进行缩放,我怎么知道如果元素我拖动靠近边界。顺便说一句,我怎么知道哪部分的滚动显示,即使它是放大?
谢谢。
答
可见矩形的大小为scrollView.bounds.size
,原点为scrollView.contentOffset
,在scrollview的坐标空间中。根据你在做什么,你可能需要使用convertRect:fromView:
或convertRect:toView:
将其转换成缩放视图的坐标空间。
我不认为这是真的,因为当视图放大时,我现在为我的代码运行它,当我放大时,它说我正在查看图像的以下矩形部分:{648,2258, 1024,668} ...如果我的图像只有1024x768,我该如何获得648和2258的偏移量? – SpaceDog 2011-05-17 01:40:56
@DigitalRobot:如果zoomScale是4,那么就滚动视图而言,图像是4096x3072,这很容易让你偏移648和2258.'[scrollView convertRect:rect toView:imageView]'将正确这个缩放因子给你在图像坐标空间的坐标,除非你手动搞乱了imageView的'transform'。 – Anomie 2011-05-17 01:47:55
谢谢。我知道了!!! – SpaceDog 2011-05-17 11:44:21