2011-02-24 86 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