2011-05-10 32 views
2

我提前爲我缺乏的iOS SDK知識道歉,我是一直負責維護和更新的iPhone應用程序的Android開發者。的iOS的UIScrollView用的UIImageView旋轉方面的問題

我使用一個UIScrollView來處理縮放和正在上一個UIImageView顯示的圖像的拖動。

UIImageView中的圖像是從Web服務器每秒多次請求的。當設備的方向發生變化時,圖像尺寸將變爲當前幀的尺寸,例如,在縱向模式下使用iPad時,圖像尺寸將爲768x1024,但切換到橫向模式時,圖像的尺寸將爲1024x768。網絡服務器根據我請求的圖像的方向和縱橫比來執行向圖像的頂部/底部或左側/右側添加黑條的工作。

我的問題是,旋轉裝置後的UIImageView從不守規矩,我希望它的方式。我預期的行爲是UIScrollView將繼續執行滾動操作,但將其基本視圖重置爲旋轉後的新框架尺寸。

如果我不指定的UIScrollView則圖像看起來壓扁彷彿滾動型contentMode試圖在前面的方向的尺寸來顯示圖像。

如果我爲ScrollView指定了UIViewContentModeScaleAspectFit的contentMode並將其縮小至一切,則圖像顯示比視圖更小,但縱橫比是正確的,但圖像居中且高度爲先前方位的高度。

如果我指定UIViewContentModeScaleAspectFill的contentMode爲滾動型的一切顯示正確,但由於視圖實際上是縮放圖像起來,以適應屏幕,當我退出了滾動,我用不正確翻譯在變焦數據。

什麼我需要做的設置的UIScrollView到新的幀大小的「基地規模」當設備方向發生了變化?還是我錯過了一個我需要設置的屬性?

回答

1

這聽起來像你可能沒有更新滾動視圖上的內容大小。 你需要做的是這樣

scrollView.contentSize = newImageSize; 

希望這是它

+0

感謝您的答案,不幸的是我已經嘗試在幾個不同的地方修改contentSize屬性,它似乎沒有什麼區別。總的來說,它似乎確實是我需要改變的,我只是無法完全按照自己的意願行事。 – snctln 2011-05-10 20:45:30

+1

經過一天的選擇,我最終解決了我的問題,這是它的一部分。我必須設置scrollview的contentSize以及將scrollview的框架設置爲空白區的全部大小,並將圖像視圖的框架設置爲滾動視圖的框架。 – snctln 2011-05-12 15:26:30

+0

酷!真高興你做到了。 – idz 2011-05-12 17:48:58

0

如果我理解正確的話,你可以使用的UIScrollView的zoomToRect:animated:方法。然後,您可以將縮放比例設置爲圖像的大小。

+0

我會給這是一個嘗試,讓你知道它是如何工作的。感謝您的答案 – snctln 2011-05-10 20:44:30