我有一個UIImageView與UIScrollView內的圖像(地圖)。我添加另一個圖像(標記)到圖像視圖(所以地圖背景和標記)。如果標記未顯示在屏幕上,當我放置標記時,我想滾動以顯示標記。當UIScrollView放大時滾動到矩形?
我在地圖上放置標記之後使用了[scrollView scrollRectToVisible:rect animated:YES]
。當scrollview沒有放大時,這很好用。如何根據縮放比例調整rect
,以便標記在視圖中居中?
我有一個UIImageView與UIScrollView內的圖像(地圖)。我添加另一個圖像(標記)到圖像視圖(所以地圖背景和標記)。如果標記未顯示在屏幕上,當我放置標記時,我想滾動以顯示標記。當UIScrollView放大時滾動到矩形?
我在地圖上放置標記之後使用了[scrollView scrollRectToVisible:rect animated:YES]
。當scrollview沒有放大時,這很好用。如何根據縮放比例調整rect
,以便標記在視圖中居中?
我在我目前正在使用的應用程序中做了一些非常類似的事情,但我沒有使用-scrollRectToVisible
,而是使用-setContentOffset
。
因爲我知道我的標記在框架中的位置,所以我可以很容易地計算出它的中心,我保存爲CGFloats centerX
和centerY
。然後我使用下面的代碼居中屏幕上的標記(I從Y值中減去161,因爲我的主視圖具有選項卡欄和導航控制器,所以它是不完整的480分):
CGFloat curZoom = scrollView.zoomScale;
[scrollView setContentOffset:CGPointMake((centerX*curZoom)-160, (centerY*curZoom)-161) animated:NO];
通過將中心點乘以當前的zoomScale,我可以找到正確的中心點,而與縮放級別無關。
我的標記是保存我的地圖的UIImageView的子視圖。這聽起來像是你正在以同樣的方式做,所以我想這(或類似的)應該爲你工作。
還沒有機會嘗試這個,但我認爲它應該工作。我會告訴你。 – jmosesman
而不是在這裏發表評論我已經在下面添加了一篇文章,使其更清潔。 – jmosesman