2015-12-10 27 views
2

我正在嘗試創建iOSstoryboard,其中portraitlandscape爲多視圖。我所創造的一切故事板constraintsautolayout如何使用Objective C根據設備方向更改UIView約束?

現在我的問題是肖像我需要顯示像下面的肖像圖像。那是我通過使用故事板約束完成的。

對於風景需要顯示First View (red)和底部欄只有其他硬編碼隱藏的其他欄。但是我不知道如何將紅色屏幕的第一視圖全高度擴展到底部酒吧頂部。

注意:這是通用應用程序。

- (void) orientationChanged:(NSNotification *)note 
{ 
    UIDevice * device = note.object; 
    switch(device.orientation) 
    { 
     case UIDeviceOrientationPortrait: 
      /* start special animation */ 
      NSLog(@"Portrait"); 
      self.namelist_tableview.hidden = NO;// ORANGE VIEW 
      break; 

     case UIDeviceOrientationLandscapeRight: 
      /* start special animation */ 
      NSLog(@"Landscape"); 
      self.namelist_tableview.hidden = YES;// ORANGE VIEW 
      break; 

     case UIDeviceOrientationLandscapeLeft: 
      /* start special animation */ 
      NSLog(@"Landscape"); 
      self.namelist_tableview.hidden = YES;// ORANGE VIEW 
      break; 

     default: 
      break; 
    }; 
} 

enter image description here

回答

1

很簡單,在intefacebuilder加約束的肖像模式, 附加限制爲橫向模式。 接下來爲所有限制制定出路。 在設備改變方向時做到這一點

,如果你是在橫向模式

人像+設置活動約束爲假(constraint.active = NO)

+設置活動約束的景觀爲true(constraint.active = YES)

,如果你是在縱向模式

+設置活動約束爲景觀爲假(constraint.active = NO)

+設置活動約束的肖像爲true(constraint.active = YES)

+0

哇。及時給予幫助。謝謝你,夥計我做到了! –

1

您可以添加紅色的看法高度約束,將其存儲在您的UIViewController。當設備的方向改變時,可以使用 。如果縱向,請將ret視圖高度約束設置爲等於您要設置的時間長度,然後橫向將紅色視圖高度約束設置爲您的初始值。

+0

對不起,我不能給你。只要給我一個constarint屬性代碼的紅色view.Please給一些代碼@tutu_magi –

0

如果您沒有固定的紅色視線的高度比你可以做這樣的事情:

創建之類的黃色色彩觀的高度約束的情況下,

第1步:選擇高度約束,像我一樣 enter image description here

-

第2步:做一個實例中可以查看控制器接口 enter image description here

下面的一行代碼寫入後您orientationChanged:方法 self.heightConstarintYelloView.constant = 0.f;

將黃色框的高度設置你爲零,因爲紅色視圖和黃色視圖之間的垂直間距,紅色視圖將比展開。

+0

你可以請張貼黃色和紅色視圖與屏幕拍攝!@Vijay –

+0

不工作@Vijay! –

+0

你的解決方案適用於iphone,但ipad shwoing橙色屏幕也不會去0. –

1

如果您使用尺寸等級,可以輕鬆完成。

使用cmd + delete可以在橫向模式下使用不需要的視圖,並相應地設置其他視圖。

DISPLAY IMAGE 1

DISPLAY IMAGE 2

+0

我只使用尺寸等級。對不起,我不能得到你。你可以請一些樣品@sourav –

+0

請通過這個視頻https://www.youtube.com/watch?v=I9VNHMbVZX4 – sourav

+0

謝謝你分享這個視頻btw爲什麼我們需要爲不同大小的設備創建單獨的故事板。通常如果我們創建更多的故事板它會複雜的應用程序開發。我的問題是對於肖像U可以看到上面的屏幕就像我想創建,如果我把景觀,紅色應該顯示設備的全高和橙色應該0.這是我的情況plz幫助我!@sourav –