2015-06-11 37 views
12

我有一個UIView在我的超級view.I已設置它的一些約束。現在我希望視圖的大小應該是不同的設備上。如果我設置固定寬度&高度,然後我得到了錯誤result.I已嘗試到用戶寬高比,但是這會在多個設備上使視圖太大或太小。如何在iOS自動佈局中設置視圖的動態寬度和高度?

我想高度&寬度應該以相同的比例增加,它必須看起來相同的所有設備。我想有靈活的高度和寬度的view.Please告訴如何做到這一點?

這裏是圖像 enter image description here

由於提前

+0

地方屏拍攝 –

+0

請參閱圖像鏈接請 – Techiee

+0

如果您希望寬度和高度靈活,請勿設置寬度和高度限制。 設置頂部,前導,尾部和底部約束。 – Maverick

回答

2

使用大小類。它有助於針對不同設備進行不同的設置。 http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorial https://youtu.be/IwSTXY0awng?t=2m12s

+0

我知道size class是做這件事的方法之一。所以它意味着我不能沒有大小classes.I使用基於所有值的大小類截至目前@Andrei Luca – Techiee

+0

類似的方式,我有更多的內容像圖像視圖和標籤其他組件我希望他們的不同大小。那麼我需要使用大小類。 – Techiee

+0

我想在iphone 4和iphone 6上有不同的視圖大小,但是它們的大小等級是相同的 – Techiee

2

enter image description here最簡單的方法是創建widthheight約束的出路。

然後根據手機動態更改它在viewDidLoad

要檢查其手機中是U可以檢查設備高度類似480爲iPhone 4S,568爲iPhone 5,5S和等

@interface ScoreListViewController(){ 
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint; 
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint; 

@end 



- (void)viewDidLoad { 
[super viewDidLoad]; 
// Set the value according to your requirement 
if(4S){ 
self.heightConstraint.constant=100; 
} 

} 
+0

那麼這就是我不想爲什麼我不能改變視圖的高度和寬度使用故事板和使他們動態@muku – Techiee

+0

你不能我的朋友,你不能這樣做與故事板 – Mukesh

+0

那麼爲什麼他們說我們不需要編碼,如果我們使用xcode 6和iOS 8. @muku – Techiee

2

嘗試按照如下的屏幕截圖:

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

你會得到的結果如下

enter image description here

+0

先生,但紅色視圖的寬度是不正確的所有屏幕大小。正如你可以看到寬度不是很好。我想等於prorportion.This是我面臨的同樣的問題 – Techiee

+0

ü平均寬度和高度需要相等 –

+0

如果你可以在4.7英寸的屏幕上看到我想要的那種類型的盒子,因爲在3.5盒子的高度上工具很小,寬度也很小,因此我希望在所有手機屏幕中都有這種類型的盒子。 – Techiee

0

我寫了一個博客article約autolayouting動態改變佈局。
對於每個屏幕大小,您可以通過編程添加約束。
算法

  1. 獲取當前設備尺寸
  2. 根據設備尺寸
  3. 然後根據取向編程方式添加的約束


改變獲取所需的限制

  • 聽UIDeviceOrientationDidChangeNotification信息通報
  • 添加新的約束根據通知
  • 然後調用setNeedsUpdateConstraints
    欲瞭解更多信息和示例代碼,看看博客文章和this GitHub庫
相關問題