2011-02-24 51 views
0

我的应用程序有一个UIScrollView与UIView作为子视图。两者尺寸相同。 scrollView包含一个大图像,子视图是一个“叠加”视图,用于保存用户在大图像(地图)上点击时设置的标记。它基本上是一个简单的应用程序,允许在地图上的某些位置设置标记。UIScrollView/UIView缩放问题

迄今为止好。设置标记和滚动scrollView工作(标记保持在地图上的位置)。但是,还有一个问题。当我放大/缩小时,标记(在叠加视图中)位置不正确(当我放大时标记移动到左上角)。我已经尝试使用convertPoint()方法转换标记位置,但不幸的是没有成功。

我UIView层次结构是这样的:

[mapScrollView addSubview:mapImageView]; // mapScrollView obviously is the scrollview. it holds 
             // an UIView with an image (map). 

[mapScrollView addSubview:mapImageAnnotationView]; // UIView that holds annotations (markers) 

[mapImageView addGestureRecognizer:singleTap]; // handle taps 
[mapImageView addGestureRecognizer:doubleTap]; 
[mapImageView addGestureRecognizer:twoFingerTap]; 

[self addSubview:mapScrollView]; // self is the container UIView that holds the composition 

尺寸/必然会设置:

mapImageView = [[UIImageView alloc] initWithImage: mapImage]; // init with image file 
mapScrollView.contentSize = CGSizeMake(mapImageView.frame.size.width,mapImageView.frame.size.height); 
mapScrollView.clipsToBounds = YES; 

mapImageAnnotationView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, mapImageViewWidth, mapImageViewWidth)]; 

任何人可以点我到正确的方向来解决这个问题?

感谢

+0

感谢格式化代码aBitObvious – souls

回答

4

哪种说法是你在委托方法viewForZoomingInScrollView返回?

你应该把你的地图和叠加层相同的上海华内,加超级视图为滚动视图,然后返回上海华盈的委托方法

+0

我改组我UIView层次为你建议,现在它的作品!谢谢帕库! – souls

+0

我很高兴我可以帮助!请接受答案,以便所有其他人检查您的问题都知道这一点。 ;) – Pacu