我正在爲iPad一個簡單的應用程序,包含您可以放大/縮小和瀏覽一個巨大的形象。的UIImageView/UIScrollView的強制固定縱橫比,以適應屏幕
該圖像被放置在UIImageView
,然後將其放在一個UIScrollView
內部內。
導航和細變焦工作100%;然而,圖像以固定長寬比裝載以適合屏幕,並且永遠不會改變(即使在放大時)。
我有一種感覺,界面生成器被設置一些屬性,我不知道,但我已經試過了我能想到的解決這個問題的一切。
問題:
當應用程序最初加載時,UIScrollView
裏面的內容是自動重新調整大小由具有其長寬比changed./fixed精確地適應iPad屏幕;實際的圖像是巨大的(比iPad的分辨率更大)。即使在放大圖像時,該縮放縱橫比仍然保持不變,並導致圖像看起來拉長。
無論我怎麼努力,我不能自動重新調整我的圖片停止了iPad。我只是希望應用程序從iPad上正常顯示圖像(100%縮放)開始,目前適合iPad屏幕的部分位於圖像的左上角。
我一直試圖修復它:
我試圖改變在Interface Builder中UIImageView's
內容模式爲「左上」。這似乎是完美的工作,但後來我意識到UIScrollView
不會讓你滾動圖像經過最初顯示的部分(左上角)。您可以放大左上部分並滾動,但不要過去最初顯示在屏幕上的內容。
代碼:
下面是我使用的設置視圖的代碼。 imageScrollView
是UIScrollView
,並且imageView
是UIImageView
。它們都是IBOutlets
。
// Set the needed attributes of the imageView
[imageView setImage:[UIImage imageNamed: @"TestImage.png"]];
imageView.userInteractionEnabled = YES;
// Set a bunch of the imageScrollView attributes.
// calculate minimum scale to perfectly fit image width, and begin at that scale
float minimumScale = [imageScrollView frame].size.width/[imageView frame].size.width;
[imageScrollView setMinimumZoomScale:minimumScale];
[imageScrollView setZoomScale:1];
[imageScrollView setMaximumZoomScale:10];
[imageScrollView setContentSize:CGSizeMake(imageView.frame.size.width, imageView.frame.size.height)];
[imageScrollView setScrollEnabled:YES];
[imageScrollView setUserInteractionEnabled:YES];
imageScrollView.clipsToBounds = YES;
imageScrollView.bounces = FALSE;
imageScrollView.bouncesZoom = FALSE;
我也有兩個UIGestureRecongizers
來處理自來水變焦,但我不相信他們是這個問題。當我評論他們時,沒有任何變化。
任何幫助將非常感謝。
感謝您的答覆,我感謝幫助。 我嘗試了你的建議,不幸的是程序執行的方式完全相同!我設置了scrollView的contentMode,並在我的設置結束時(在viewDidLoad()中)在imageView上調用了setNeedsDisplay。 – AlexFZ 2011-02-09 19:16:19
我不會那麼用IB,主要是因爲這樣的問題。您可以嘗試以編程方式構建視圖。這可能會消除差異/問題。 – Rayfleck 2011-02-10 01:52:15