我使用UIImage以Aspect Fit模式顯示我的測試圖像。我希望它始終位於頂部並儘可能多地填充空間(請參閱下圖)。如何確保圖像始終位於頂部?
如何設置約束,以便圖像始終位於頂部(在較高設備上沒有任何間隙)?
附加信息: 我正在使用Xcode 7.0.1 針對iOS 8及以上版本進行開發。 我正在使用自動佈局。
我試着將「> = 0」設置爲底部約束,這樣底部的間隙可以達到雙倍高度,但它不起作用。
有什麼建議嗎?
我使用UIImage以Aspect Fit模式顯示我的測試圖像。我希望它始終位於頂部並儘可能多地填充空間(請參閱下圖)。如何確保圖像始終位於頂部?
如何設置約束,以便圖像始終位於頂部(在較高設備上沒有任何間隙)?
附加信息: 我正在使用Xcode 7.0.1 針對iOS 8及以上版本進行開發。 我正在使用自動佈局。
我試着將「> = 0」設置爲底部約束,這樣底部的間隙可以達到雙倍高度,但它不起作用。
有什麼建議嗎?
這裏我添加一個圖像,顯示如何爲包含圖像的視圖以及視圖內的圖像設置約束。
如果有人想看看我的實驗細節,我已經通過下面的鏈接公開回購。它包括故事板解決方案分支以及代碼解決方案分支。
我建議你編程計算的ImageView的大小,直接設定框架。 在您的viewController的viewWillAppear
或viewDidLoad
方法中這樣做。
這將這樣的伎倆
UIImage *image; // yourImage
CGFloat whRatio = image.size.width/image.size.height;
if (whRatio > 1) {
// there will be borders on top -> adjust your view
imageView.frame = CGRectMake(imageView.frame.origin.x,
imageView.frame.origin.y,
imageView.frame.size.width,
imageView.frame.size.height/whRatio);
}
您可能要想想也圖像調整ImageView的情況下很窄,以防止白空間完全。
謝謝較大的設備需要什麼樣的影響。這指出我很好的方向,因此+1。但是,我仍然無法使它工作。同時,我在故事板中找到了另外一個UIView的解決方案,然後我將UIImage放入了這個UIView。在那裏,我能夠將尾隨,頂端和底端約束設置爲「大於或等於」。以這種方式起作用。我會在下面寫下我的答案。 – Andrej
我認爲你有正確的約束。您是否嘗試將contentMode設置爲「Scale to fill」? 也許你正在使用aspectFit
是的,我正在使用Aspect Fit。在描述中很重要。我想保留圖像的方面。 – Andrej
方面填充如何? –
沒有問題,您的約束,但是因爲你用aspectFit ......它不會給你 –