我使用AutoLayout將子視圖定位在UITableViewCell子類中。視圖層次結構的結構是這樣的:Autolayout,將視圖固定爲零高度的兄弟
- 頂容器視圖
- 圖像視圖
- 評論容器視圖
- 頭像圖像視圖
- Like按鈕
- 用戶名標籤
- 評論按鈕
- 評論標籤
當有圖像查看圖像時,我已經建立的工作約束之意。但是,當沒有圖像且圖像視圖的高度爲0時,評論視圖無法填充其容器(即其頂部不等於其頂層視圖的頂部)。 我認爲如果視圖A的頂部固定在視圖B的底部並且視圖B的高度爲0,則視圖A的origin.y將是視圖B的origin.y。但那不是發生了什麼事。 任何人都可以告訴我什麼是我的AutoLayout格式不對?
[self.contentContainerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_postImageView(<=200.0)][_commentView]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_postImageView, _commentView)]];
_commentView中的子視圖還有其他限制,我會根據請求發佈這些限制。
這裏是發生了什麼事情的一個鏡頭:
而在第二單元預期的效果(這是我所得到的,當格式字符串修改爲:@"|[_commentView]|
):很顯然,這個突破存在圖像的情況。
您發佈的約束應該按照您想要的方式工作,所以必須有其他約束阻止視圖展開。它看起來像保持相同的大小 - 確保它沒有明確的高度設置或超級視圖的最高限制。 – rdelmar
@rdelmar,謝謝你的回覆。我將深入研究_commentView子視圖中的約束條件。 – geraldWilliam