2014-02-25 100 views
1

我很熟悉自定義視圖。今天我開始使用故事板&我無法說服自己使用故事板。當使用storybaords時,需要以編程方式調整子視圖的大小?

問題: - 我已經在視頻控制器中設置了故事板。 - 在模擬器上運行4英寸,我很高興與視圖的佈局。 - 在模擬器上運行3.5英寸,我感到不安,因爲我的視圖部分可見。

這裏是屏幕截圖。

  • 我的SotryBaord(查看「刪除用戶」按鈕)。

    enter image description here

  • 刪除用戶按鈕幀:

    enter image description here

  • 運行在模擬器4英寸

    enter image description here

  • 運行在模擬器4英寸(我有問題)

    enter image description here

如何獲得與佈局調整框架,使運行在這兩種尺寸的iPhone清楚。我的刪除用戶按鈕不應該離開屏幕。

+0

你有沒有設置自動佈局? – Volker

+0

是的,在autoLayout的名稱上,我選中了Use AutoLaout複選框。 –

+1

您可能需要學習自動佈局。這是一個很好的自動佈局教程。 http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2 – Sandeep

回答

2

配合,自動佈局有些複雜,您需要在花費大量時間掌握它,但如果您想在幾分鐘內完成它,只需取消選中自動佈局,選擇每個UI元素並設置其自動調整大小像這樣enter image description here

您可以採用不同改變自動佈局,而且可以通過敲擊該按鈕enter image description here

希望這將有助於節省時間看到的變化。

1

非常好的問題。當我升級它們以支持iphone 5屏幕尺寸時,我遇到了與我的每個應用程序完全相同的問題。

我最終做的是禁用自動佈局,但我仍然使用故事板來放置我所有的按鈕,視圖,圖像等。我確保在放置所有項目時在故事板中使用了3.5英寸。然後,我將這些UILabel或UIButton等連接到一個IBoutLet,然後在我的ViewDidLoad中查看它的iphone 4 vs iPhone 5,並相應地重新定位所有按鈕。例如

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
     { 
      CGSize result = [[UIScreen mainScreen] bounds].size; 
      if(result.height == 480) 
      { 
       // iPhone Classic 

      } 
      if(result.height == 568) 
      { 
       // iPhone 5 this is the offset I am using 
       int yInt = 50; 

       [blurSlider setFrame:CGRectMake(31, 406+yInt, 271, 34)]; 
       [alphaSlider setFrame:CGRectMake(31, 447+yInt, 271, 34)]; 

       [blurLabel setFrame:CGRectMake(33, 392+yInt, 71, 24)]; 
       [alphaLabel setFrame:CGRectMake(33, 436+yInt, 71, 24)]; 
      } 
     } 
} 

我可以在沒有使用故事板的情況下完成所有的編碼嗎?當然,我可以但是我發現故事板的視覺方面吸引人,並且確切地看到所有東西都適合在屏幕上。

+0

謝謝你的回答,但我認爲這很像一個自定義視圖,我很熟悉這一點。有趣的是,我想知道使用故事板自動佈局的好處。謝謝您的幫助。 –

相關問題