在放大UIScrollView时如何使图像不调整大小?

时间:2010-06-18 23:42:21

标签: iphone cocoa-touch ipad

我希望UIScrollView中的图像(或者至少显示在UIScrollView中)在放大和缩小时不会改变它们的大小。我希望图像在缩放或滚动时保持其位置。

用例是我有一个带有图钉的自定义地图视图。我希望在缩放和滚动地图时图钉保持不变,但我不希望它们与内容“放大”。

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

您可以将图钉图像作为UIScrollView的子视图,而不是

返回的视图的子视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

然后,在scrollViewDidZoom中,通过zoomScale调整图钉x和y以保持引脚正确定位:

- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
    imageView.frame = CGRectMake(pushPinX * scrollView.zoomScale, pushPinY * scrollView.zoomScale, imageView.frame.size.width, imageView.frame.size.height);
}