我只是第一次嘗試在筆尖中使用Autolayout。看起來我的情況是教科書情況,其中NSLayoutConstraints
將是完美的解決方案。對隱藏對象的NSLayoutConstraint仍然覆蓋替代約束條件
我有一個UITableviewCell
與UILabel
和旁邊的圖像。圖像根據下層數據的屬性而變化,它可以改變大小,有時可以隱藏。我的意圖是標籤與圖像保持一定的距離,並在圖像隱藏時覆蓋整個單元格。
我在標籤上相應地設置的約束:
- 一個與後緣從該圖像,高優先級的,但不是必需的前緣的一組距離約束。
- 一個約束與後沿設置距離超視圖邊緣,優先級低得多。
- 適當的左和上限制,對標籤的寬度沒有限制。
即使圖像被隱藏,標籤仍會被第一個約束縮短。這是預期的行爲?我通常會在運行時計算並更改標籤的寬度,但這看起來正是NSLayoutConstraints的意義所在。
如何在圖像不可見時忽略對圖像的約束?
我相信第一個約束仍然會發生,因爲它比第二個約束具有更高的優先級。當圖像隱藏時,您需要刪除第一個約束。 –
我認爲有一個程序化的解決方案,我發現一些其他線程的可能性。在我犯罪之前,我想確保我不會錯過簡單的事情。看來這將是一個簡單的情況,NSLayoutConstraints不需要編碼「幫助」。感謝您的建議,我現在正在嘗試其中一些選項。 –
@verbumdei你讓我走上正軌。我爲圖像添加了一個約束出口。我首先嚐試改變優先順序,但沒有任何效果。然後,如您所建議的那樣,將其移除並適當添加回去。相當簡單。如果你以答案的形式發佈了一些細節,那麼我會給你信任。 –