我已经阅读了很多文档,我必须说,我很困惑。以下是我目前的设置。
在一个iPad项目中,我有一个UIScrollView(scrollView
),其中包含一个子UIView(insetView
)。我的insetView
是从scrollViewDidEndZooming
方法返回的,严格用于缩放它的子视图。
CCD_ 5开始小于CCD_。当用户捏住缩放时,insetView
可以增长到原始大小的两倍,也可以缩小到原始尺寸的一半。
所有这些都很好,但有一点烦恼我想减轻。如果我捏来缩放,insetView
会收缩,但缩放的原点是insetView
的左上角。换句话说,insetView
的左上角点固定在scrollView
窗口中时,它将同时增长和收缩。
我想做的是让insetView
放大和缩小它的中心,并固定在scrollView
的中心,直到它的大小大于scrollView
区域。在这一点上,我希望缩放原点位于收缩的中间,或者至少位于当前可见的insetView
的当前部分的中心?
如何才能做到这一点?
您希望在scrollViewDidZoom:
委托方法中执行类似操作
CGSize boundsSize = scrollView.bounds.size;
CGRect frameToCenter = insetView.frame;
if (frameToCenter.size.width < boundsSize.width) {
frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width) / 2.0f;
} else {
frameToCenter.origin.x = 0.0f;
}
if (frameToCenter.size.height < boundsSize.height) {
frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height) / 2.0f;
} else {
frameToCenter.origin.y = 0.0f;
}
insetView.frame = frameToCenter;