2011-05-16 100 views
1

我有一個UIScrollView對象。在這個滾動條內部,我有一張圖片,在圖片上有一些對象(如圖片的子視圖),就像Photoshop組合中的圖層一樣。所以,如果我放大圖片,對象將會放大。如果我滾動圖片,對象滾動。iPhone - 滾動一個UIScrollView保持移動

現在考慮這個問題:我在放大圖像時,圖像現在比iPad屏幕更大。我看到了圖片的上半部分。我觸摸畫面上方的對象並將其拖動到屏幕底部。我的意圖是拖放圖片底部的拖動對象,但當圖片放大時,我必須拖動元素到屏幕底部,釋放它,向上滾動圖片,然後繼續拖動對象。

我想是這樣的:我開始拖動,當我在屏幕的邊界到達,滾動條滾動的開始那名向下或向上的圖像自動顯示部分。

什麼我需要的是知道RECT是可見的,一種scrollRectToVisible的逆...

考慮到的圖片可以在任何級別進行縮放,我怎麼知道如果元素我拖動靠近邊界。順便說一句,我怎麼知道哪部分的滾動顯示,即使它是放大?

謝謝。

回答

1

可見矩形的大小爲scrollView.bounds.size,原點爲scrollView.contentOffset,在scrollview的座標空間中。根據你在做什麼,你可能需要使用convertRect:fromView:convertRect:toView:將其轉換成縮放視圖的座標空間。

+0

我不認爲這是真的,因爲當視圖放大時,我現在爲我的代碼運行它,當我放大時,它說我正在查看圖像的以下矩形部分:{648,2258, 1024,668} ...如果我的圖像只有1024x768,我該如何獲得648和2258的偏移量? – SpaceDog 2011-05-17 01:40:56

+0

@DigitalRobot:如果zoomScale是4,那麼就滾動視圖而言,圖像是4096x3072,這很容易讓你偏移648和2258.'[scrollView convertRect:rect toView:imageView]'將正確這個縮放因子給你在圖像座標空間的座標,除非你手動搞亂了imageView的'transform'。 – Anomie 2011-05-17 01:47:55

+0

謝謝。我知道了!!! – SpaceDog 2011-05-17 11:44:21