2013-07-08 77 views
1

我很新的自動佈局。我有一個簡單的UIViewController,它包含一個View和一個UIImageView。自動佈局更新圖像大小時旋轉

在縱向模式下,此圖像爲320x115px,但我想在旋轉到橫向時降低圖像高度。

目前我對圖像有以下限制。 - 高度的Equals 115px -Trailing空間,以上海華 -Leading空間,以上海華 機頂空間,以supverview

如何使從縱向旋轉爲橫向,當我UIView有比例垂直尺寸?

感謝您的幫助,

Sébastien。

+0

UIImageView中的圖像有多大? –

+0

UIImageView是320x115px – sebastien

回答

2

如果你想得到與115相同的比例尺寸爲480(0.24),那麼你使用constraintWithItem中的乘數參數:attribute:relatedBy:toItem:attribute:multiplier:constant :.

在下面的例子中,我創建了IB(heightCon)中的高度約束的IBOutlet,然後在代碼中刪除它,並添加另一個基於self.view高度(iv是我的出口圖像視圖):

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self.iv removeConstraint:self.heightCon]; 
    NSLayoutConstraint *newHeightCon = [NSLayoutConstraint constraintWithItem:self.iv attribute:NSLayoutAttributeHeight relatedBy:0 toItem:self.view attribute:NSLayoutAttributeHeight multiplier:.24 constant:0]; 
    [self.view addConstraint:newHeightCon]; 
} 
+0

謝謝!有沒有辦法直接從IB做到這一點?我認爲當視圖從縱向旋轉到橫向時需要替換約束,然後在視圖從橫向旋轉到縱向時再次替換約束?對? – sebastien

+0

@ user951368,不,從IB無法做到這一點 - 遺憾的是,我們無法訪問IB中的乘數參數。我不確定你的第二句話是什麼意思 - 除了我發佈的內容外,你不需要做任何事情。 – rdelmar

+0

也許我錯過了一些東西。最初我的視圖以縱向模式顯示,UIImage大小爲320x115px。然後用戶將iPhone旋轉到橫向,圖像的高度必須縮放,我想我需要在旋轉開始時替換約束。接下來,當用戶將旋轉回肖像時,我將不得不取代限制來恢復原始高度(115px)。這樣對嗎? – sebastien