Я работаю с UICollectionView с данными моей модели. У меня есть эта модель данные подготовленыНевозможно переключить Bool in loop
struct Room {
let type: String
let position: String
var hidden: Bool?
static let typeA = "A"
static let typeB = "B"
static let typeC = "C"
static let positionA = "A"
static let positionB = "B"
static let positionC = "C"
static var rooms = [
Room(type: typeA, position: positionA, hidden: false),
Room(type: typeA, position: positionB, hidden: false),
Room(type: typeA, position: positionC, hidden: false),
Room(type: typeB, position: positionA, hidden: false),
Room(type: typeB, position: positionB, hidden: false),
Room(type: typeB, position: positionC, hidden: false),
Room(type: typeC, position: positionA, hidden: false),
Room(type: typeC, position: positionB, hidden: false),
Room(type: typeC, position: positionC, hidden: false)
]
}
для UICollectionViewCells. Что мне нужно сделать, это переключить hidden
логическое значение, поэтому он может фильтровать клетки с этим
В cellForItemAtIndexPath
if Room.rooms[indexPath.row].hidden == true {
cell.layer.opacity = 0.5
}
и сделать это так, у меня есть эта функция в Room
структуры
static func toggleHidden(whichOne: String) {
if var roomType = rooms.type {
if roomType.type == whichOne || roomType.position == whichOne {
roomType.hidden = true
}
}
}
Но он выдает сообщение об ошибке:
Cannot assign to 'hidden' in 'roomType'
я могу сделать что-то вроде этого
static func toggleHidden(whichOne: Int) {
(rooms[whichOne].hidden == false) ? (rooms[whichOne].hidden = true) : (rooms[whichOne].hidden = false)
}
Тем не менее, нужно фильтровать строки, так что несколько элементов могут быть переключены одновременно. То, что я делаю, заключается в переключении hidden
bool всех элементов, которые имеют строку whichOne
.
Этот подход не умный прежде всего ...? Любой совет будет оценен, спасибо заранее.
«Комната» - это класс/структура с переменными 'комнатами', вмещающими объекты« Комната »??? Очень запутанный и непредсказуемый в ошибках, которые он может произвести. – Mundi
Извините за путаницу, обновленный код. – provdr