我目前正在Xcode中開發一個應用程序。在這個應用程序中,我想讓用戶可以通過多個複選框過濾表格視圖單元格(對象)的內容[見圖1]。XCODE過濾器表格視圖單元格multipe複選框
在表視圖中所示的每個對象這就是有8個屬性具有值1 ,或。過濾器區域中顯示的複選框與這8個屬性有關。
喜歡:
- Checkbox1 = PROP1
- Checkbox2 = PROP2
- Checkbox3 = prop3
- 等。
對象陣列:
var objects:[Object] = [
Object(name: "Lorem Ipsum", prop1: "3", prop2: "1", prop3: "1", prop4: "1", prop5: "1", prop6: "1", prop7: "3", prop8: "2"),
Object(name: "Lorem Ipsum", prop1: "1", prop2: "1", prop3: "1", prop4: "3", prop5: "1", prop6: "1", prop7: "3", prop8: "2"),
Object(name: "Lorem Ipsum", prop1: "1", prop2: "2", prop3: "2", prop4: "2", prop5: "2", prop6: "1", prop7: "3", prop8: "2"),
Object(name: "Lorem Ipsum", prop1: "2", prop2: "3", prop3: "3", prop4: "1", prop5: "3", prop6: "1", prop7: "3", prop8: "2"),
Object(name: "Lorem Ipsum", prop1: "1", prop2: "3", prop3: "1", prop4: "2", prop5: "2", prop6: "3", prop7: "2", prop8: "1"),
Object(name: "Lorem Ipsum", prop1: "2", prop2: "3", prop3: "1", prop4: "1", prop5: "1", prop6: "1", prop7: "3", prop8: "2")
]
當所有複選框未選中時,所有對象都將顯示相同的默認顏色(藍色)。
但是當其中一個複選框被選中,則過濾器需要改變具有相關的屬性來選擇的複選框中的對象的顏色,如值或。當值爲 =改變爲綠色,當值爲 =改變爲紫色。
因此,例如,如果選擇checkbox2,與PROP2爲或所有對象都應該有不同的顏色[見圖2]
我做了調查,但無法找到一個方法來做到這一點,讓它起作用。如果有人能幫上忙,那會很棒!
編輯 - 注意:如果用戶選擇兩個複選框,例如1和2,屬性1或屬性2上值爲3的對象需要具有紫色,即使它們的屬性值爲2 。所以值3'重量'超過2
你不能簡單地重新加載顯示覆選框的當前單元格嗎? '的tableView。reloadRows(at:[currentIndexPath],with:.automatic)' – Nathaniel
是的,這是可能的,但是我必須渲染很多數組嗎?如果用戶選擇多個複選框會怎麼樣。 – Maarten
如果我正確理解你的問題,我不認爲你有任何選擇,除了每次複選框被選中/取消選擇時,重新加載tableView數據,除非你想添加觀察員到每個單元格......這似乎過多....如果你想要一個更流暢的刷新動畫,使用'tableView.reloadSections(IndexSet(integer:0),with:.automatic)'並選擇你最喜歡的動畫。 – Nathaniel