[英]Auto-layout with different combinations of elements
我有一個帶有幾個不同圖標的UITableViewCell,可以以不同的組合顯示。 這是一個例子:
在這種情況下,有4種不同的組合:
我正在嘗試弄清如何在這種情況下布置約束,理想情況下不必在代碼中通過在運行Tableview時在運行時刪除和添加所有這些約束來做到這一點,這可能會使滾動變得混亂。
有什么辦法可以在設計時使它起作用嗎? 也許通過施加一些約束以使每個圖像盡可能垂直居中,並且只有在存在其他元素的情況下才可以抵抗。 丟失的元素可以“隱藏”或完全從contentView中刪除(以效果最好的為准)。
我認為您的設計時解決方案不起作用。 您可以指定沒有約束的東西-隱藏的視圖參與布局,如果要刪除視圖,則要刪除約束。
不要以為約束更新會給您帶來性能問題-首先以最簡單的方式進行操作,然后再進行測量。
在這種情況下,最簡單的方法可能是使用容器視圖來保存您的三個圖標。 可以將其固定在單元格的頂部和底部,並固定在距右邊緣正確的距離處。 這些約束不會改變。
可以將所有三個圖像視圖添加到此容器中。 在水平方向上,它們不需要約束-它們在x軸上可以默認為零,並且具有固有寬度。
根據單元格的內容,然后將每個圖像視圖設置為可見或不可見,刪除容器視圖上的約束,然后添加新的約束以提供垂直位置。 最簡單的約束條件是在容器視圖的底部使用乘數。 您可以將每個可見圖像視圖的中心Y限制為適當的乘數-如果只有一個可見,則乘數0.5,如果有兩個,則分別為0.33和0.66,對於所有三個,分別為0.25、0.5和0.75。
這不是一組復雜的約束,如果引起滾動問題,我會感到驚訝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.