2015-10-20 96 views
0

我使用UIImage以Aspect Fit模式顯示我的測試圖像。我希望它始終位於頂部並儘可能多地填充空間(請參閱下圖)。如何確保圖像始終位於頂部?

如何設置約束,以便圖像始終位於頂部(在較高設備上沒有任何間隙)?

附加信息: 我正在使用Xcode 7.0.1 針對iOS 8及以上版本進行開發。 我正在使用自動佈局。

我試着將「> = 0」設置爲底部約束,這樣底部的間隙可以達到雙倍高度,但它不起作用。

有什麼建議嗎?

enter image description here

+0

沒有問題,您的約束,但是因爲你用aspectFit ......它不會給你 –

回答

0

這裏我添加一個圖像,顯示如何爲包含圖像的視圖以及視圖內的圖像設置約束。

如果有人想看看我的實驗細節,我已經通過下面的鏈接公開回購。它包括故事板解決方案分支以及代碼解決方案分支。

https://bitbucket.org/AndrejBB/test-layout

enter image description here

1

我建議你編程計算的ImageView的大小,直接設定框架。 在您的viewController的viewWillAppearviewDidLoad方法中這樣做。

這將這樣的伎倆

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

謝謝較大的設備需要什麼樣的影響。這指出我很好的方向,因此+1。但是,我仍然無法使它工作。同時,我在故事板中找到了另外一個UIView的解決方案,然後我將UIImage放入了這個UIView。在那裏,我能夠將尾隨,頂端和底端約束設置爲「大於或等於」。以這種方式起作用。我會在下面寫下我的答案。 – Andrej

1

我認爲你有正確的約束。您是否嘗試將contentMode設置爲「Scale to fill」? 也許你正在使用aspectFit

+0

是的,我正在使用Aspect Fit。在描述中很重要。我想保留圖像的方面。 – Andrej

+0

方面填充如何? –

相關問題