2012-01-20 36 views
2

我的UIViewController中有一個UIImageView。它加載一個81x37的圖像,其原點爲0x20。我想要做的是創建該圖像作爲我的背景以及徽標。我的意思是當我開始我的應用程序時,我希望圖像包含整個屏幕,一旦我加載了所有的數據並準備好顯示給用戶,我想將它縮小爲只是圖標屏幕左上角。我想說的是調整大小的代碼的作品,但它似乎延長了圖像,並將它關閉了一半。因此,無論是在屏幕尺寸以外渲染還是僅渲染它。iOS圖像在應用程序之外延伸

下面是我如何處理我的框架調整大小,這是在我的viewDidLoad和我的isReady函數完成的代碼片段。

- (void) viewDidLoad 
{ 
    originalSize = CGRectMake(self.logoImage.frame.origin.x, self.logoImage.frame.origin.y, self.logoImage.frame.size.width, self.logoImage.frame.size.height); 
    fullScreenSize = CGRectMake(0.0, 0.0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height); 
    [self.logoImage setFrame:fullScreenSize]; 
} 

- (void)isReady:(BOOL)initialized 
{ 
    if(initialized) 
    { 
     [self.logoImage setFrame:self.originalSize]; 
    } 
    else 
    { 
     [self.logoImage setFrame:self.fullScreenSize]; 
    } 
} 
+0

@Damo當你提到方向時,我一定要檢查全屏大小的值,並注意我需要我的寬度== screenHeight和我的高度== screenWidth。硬件必須有更好的方式來根據它的方向告訴我尺寸,而不是翻轉寬度和高度值 – Seb

+0

歡迎您 - 如果我幫助我,請告訴我! ;-) – Damo

回答

0

我想感謝達摩回答我的問題。答案在評論中。

這裏是達摩的答案 -

你檢查過fullScreenSize,看它是否正在 設置爲框架,實際上是正確導向;即「Stretch the image and cut it off off」,聽起來好像它有一個橫向框架,當它應該有一個縱向框架(反之亦然)時。如果是這種情況,請查看 以獲取更好的方法來確定幀。

0

你爲什麼不只是設置originalSize = self.logoImage.frame和fullScreenSize = [[UIScreen mainScreen]界限]

無論如何,假設您的logoImage是一個imageView,您是否將imageView的contentMode設置爲UIViewContentModeAspectFit或等效?默認情況下,imageViews不會縮放圖像。

+0

我將如何設置內容模式?這是在IB還是在代碼中完成的? – Seb