簡體   English   中英

圖像在約束條件下無法正常工作

[英]Image is not working as expected with constraints

我有一個根UIView (用於渲染陰影),它的內容是另一個UIVIew ,它在底部包含一個UIImage和一些標簽。 當我查看在接口生成器中設置了約束的示例海報時,它看起來或多或少是我想要的。

在此屏幕快照中, DropshadowUI View包含內容並渲染陰影。 CardView在底部同時包含UIImageViewUILabel DropshadowUI View是透明的, CardView具有藍色背景,並且是陰影的整個高度/寬度(帶有一點邊距), UIImageView具有綠色背景,有助於在測試時區分視圖。 您可以看到, UIImageView大約占據了CardView布局的80%,這是理想的。 CardView的其余部分由UILabel

在此處輸入圖片說明

但是,當我運行該應用程序時,約束似乎與界面構建器中所示的工作方式不同。 UIImageView拉伸以占據CardView的整個高度。 因此, UILabel被隱藏起來了。 從我的UINavigationBar和UITabBar后面的綠色模糊來看,盡管圖像甚至沒有那么大,但UIImageView似乎垂直延伸到可見區域的范圍之外。

在此處輸入圖片說明

現在,在界面生成器中設置了UIImageView圖像(將在工作時以編程方式設置)。 內容模式為縱橫比適合。 為什么UIImageView垂直拉伸? Status標簽的Superview底部到底部的空間設置為8點。 Year標簽的底部空間被限制在狀態的頂部。 Movie Title的屁股被約束到頂部Year Movie Title的頂部被限制在UIImageView的底部。 假設標簽將阻止圖像視圖在底部生長,而是通過拉伸頂部而變高(這僅限於Superview視圖的頂部。

我的約束有問題嗎? 我仍在學習自動布局系統,因此,如果屏幕截圖中有某些內容無法幫助解釋我的約束條件,請讓我知道我可以做些什么來幫助澄清它們。

編輯

盡管設計時視圖看起來正確,但我還是將UIImageView重置為建議的約束,並最終在運行時完成了此操作。

在此處輸入圖片說明

我是否有辦法約束UIImageView,以使圖像只能變得更高,直到空間不足以容納其余內容為止。 我在這里丟失了底部標簽,因為現在圖像適合UIImageView但是將其他所有內容推到了最低點。 我希望它嘗試填充盡可能多的水平空間,直到它下面的兄弟姐妹不再能夠被進一步壓低為止。

我得到的與我想要的

在此處輸入圖片說明 在此處輸入圖片說明

選擇您的圖像,然后轉到“ 布局問題”工具>“重置為建議的約束”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM