簡體   English   中英

tableviewcell中的自動布局縱橫比imageview

[英]autolayout aspect ratio imageview in tableviewcell

我有一個自定義tableViewCell,其中有一個imageView。 這樣的布局:

布局

我想使用自動布局來計算方法中單元格的高度

CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

所以我設置了這樣的約束

樹

基本上,這些約束只是將每個元素固定到其superView的邊緣或上方/下方的視圖。

問題是我還要添加一個約束,即imageView的寬高比。 我想設置imageView的高度始終是其寬度的一半。 如果我將寬高比約束直接設置為2:1,則總是會Unable to simultaneously satisfy constraints錯誤。 我嘗試將優先級更改為高,但仍然沒有運氣。

我可以通過使用自動布局來實現嗎?

您的約束起作用並正確計算自動高度的原因是,所有UI元素都有其自身的固有大小(使之適合其內容的大小)。

因此, imageView已經具有適合放入您的圖像的大小。 您不能同時使用固有尺寸並指定自己的尺寸(即使您只想更改其中一個尺寸)。

我看到的解決方案是在UIImageView上設置靜態高度限制,再加上寬度的寬高比。 然后,在代碼中將高度約束的常量設置為image.size.height值。

[self.imageHeightConstraint setConstant:self.imageView.image.size.height];
[self.view layoutIfNeeded];

通過這種方式,您可以保留固有尺寸的一半(僅高度),並獲得自定義寬度。

希望我的解釋有意義。 讓我知道您是否有任何疑問。

暫無
暫無

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

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