我有一些UIButtons代表不同的Restaurants,其内容来自结构。在此结构中是一个带有每个餐厅标签的数组。 如何隐藏基于标签的UIButton? 目前,我暂时有这个想法:
func filterFavorites() {
if importedDataA.filterTags.contains(filterPresetRestaurantTypeService) {
isVisibleA = true
} else {
isVisibleA = false
}
if importedDataB.filterTags.contains(filterPresetRestaurantTypeService) {
isVisibleB = true
} else {
isVisibleB = false
}
if importedDataC.filterTags.contains(filterPresetRestaurantTypeService) {
isVisibleC = true
} else {
isVisibleC = false
}
if importedDataD.filterTags.contains(filterPresetRestaurantTypeService) {
isVisibleD = true
} else {
isVisibleD = false
}
if importedDataE.filterTags.contains(filterPresetRestaurantTypeService) {
isVisibleE = true
} else {
isVisibleE = false
}
if importedDataF.filterTags.contains(filterPresetRestaurantTypeService) {
isVisibleF = true
} else {
isVisibleF = false
}
if importedDataG.filterTags.contains(filterPresetRestaurantTypeService) {
isVisibleG = true
} else {
isVisibleG = false
}
等...
然后...
func filterApply() {
if isVisibleA == true {
if UserDefaults.standard.bool(forKey: "hideFilteredObjects") == true {
cellA.isHidden = false
} else {
//cellA.popIn()
}
} else {
if UserDefaults.standard.bool(forKey: "hideFilteredObjects") == true {
cellA.isHidden = true
} else {
//cellA.popOut()
}
}
}
答案 0 :(得分:0)
假设您有一个结构:
struct ImportedData{
var filterTags: [Int]
}
let buttons = [UIButton]() // add your buttons
let importedData = [ImportedData]() // add your importedData
(0..<(buttons.count)).map{buttons[$0].isHidden = UserDefaults.standard.bool(forKey: "hideFilteredObjects") && (!importedData[$0].filterTags.contains(filterPresetRestaurantTypeService))}
答案 1 :(得分:0)
除了创建结构的几个实例ImportDataA,importedDataB,importedDataC等之外,您还可以创建实例数组,例如:
for data in importedData{
if data.filterTags.contains(filterPresetRestaurantTypeService){
isVisibleG = true
} else {
isVisibleG = false
}
}
然后,您可以使用for循环遍历以下实例,而不是使用if语句逐一遍历所有这些项目:
$(file)
希望有帮助。