簡體   English   中英

對UITableViewCell contentView的AutoLayout約束不受尊重

[英]AutoLayout constraints to UITableViewCell contentView not respected

我正在嘗試創建動態調整表格視圖單元格。 我通過使用這個非常詳細和有用的答案完成了調整大小。

但是,在heightForRowAtIndexPath未正確計算標簽的最大寬度。

我的單元格目前在其contentView只有一個標簽,約束設置為將所有標簽邊緣固定到contentView邊緣。 這就是我在IB中所擁有的 在此輸入圖像描述

使用heightForRowAtIndexPath的offscreen單元計算單元格大小

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

在此過程中,似乎它正在label.preferredMaxLayoutWidth約束,並且label.preferredMaxLayoutWidth屬性被設置為320,但是當標簽實際被渲染時,仍然存在填充。

在此輸入圖像描述

填充是布局邊距。 你必須要注意Constrain to margins選項。

Constrain to margins已啟用: 在此輸入圖像描述

Constrain to margins已禁用: 在此輸入圖像描述

如何禁用它?

  1. 您可以雙擊其中一個約束並取消選中Relative to margin選項:

在此輸入圖像描述
在此輸入圖像描述

  1. 在創建標簽約束時取消選中Constrain to margins

在此輸入圖像描述

相關鏈接:
什么是Xcode 6中的Storyboard中的“約束到邊距”

暫無
暫無

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

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