2013-03-01 177 views
1

我在桌子下有一個UIView。 我必須設置UIView的高度爲iPhone 4S的或5 我嘗試使用根據屏幕大小設置UIView高度

- (void) regolaViewPeriPhone { 
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
    { 
     CGSize result = [[UIScreen mainScreen] bounds].size; 
     if(result.height == 480) 
     { 
      CGRect frame = CGRectMake(0, 210, 320, 245); 
      _pickerContainerView.frame = frame; 
     } 
     if(result.height == 568) 
     { 
      CGRect frame = CGRectMake(0, 210, 320, 290); 
      _pickerContainerView.frame = frame; 
     } 
    } 
} 

,但它不工作,什麼是正確的方法是什麼?謝謝!

+0

是regolaViewPeriPhone被稱爲? – Shaun 2013-03-01 04:44:19

回答

-2

這是轉方式 「設置的UIView根據屏幕尺寸高度」

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
if (screenBounds.size.height == 568) 
{ 
    //Do u r stuff here for Iphone 5 
} 
else if(screenBounds.size.height==480) 
{ 
    //Do u r stuff here for Iphone 4s 
} 

//如果我的回答是正確的,那麼選了我...

+0

不,不要這樣做。切勿在代碼中使用硬編碼值。如果屏幕尺寸發生變化,您將遇到問題。另外,我不認爲這回答了這個問題。 – nielsbot 2013-03-01 16:25:26

+0

Pandu的建議有效!你是否建議使用「applicationFrame」而不是「bounds」? – 2013-03-01 22:26:40

+0

如果您需要應用程序的大小,請使用applicationFrame。這是正確的框架。它還反映了是否存在隱藏的狀態欄或雙高度狀態欄(在通話期間或使用綁定時)。你應該嘗試弄清楚你的NIB中有什麼問題會阻止你的視圖自動被正確調整大小。然後編寫基於視圖大小的佈局代碼。 – nielsbot 2013-03-04 16:04:17

1

[ [ UIScreen mainScreen ] applicationFrame ]

+4

但實際上,您包含的視圖控制器應該爲您處理此問題。檢查您的IB自動調整標誌... – nielsbot 2013-03-01 01:15:50

+0

它只是滾動,而不是調整大小... – 2013-03-01 12:32:36

+0

所以有一個封閉的滾動視圖? – nielsbot 2013-03-01 16:24:08

相關問題