У меня следующий процесс. Каждая ячейка табличного представления имеет идентификатор объекта, на который ссылается метка. Когда пользователь нажимает кнопку «нравится» или «не нравится» в этой ячейке, objectId в этой ячейке сохраняется в currentUserObjectIdsTouched («массив») PFUser. Когда конкретному пользователю уже понравилась или не понравилась ячейка на основе его currentUserObjectIdsTouched, я хочу отключить функции «нравится» и «не нравится» для этой конкретной ячейки. У меня все встало до отключения. Как отключить обе кнопки.

Синтаксис моей кнопки в cellForRow: cell.likesButton()

     cellForRow:

        if currentUserObjectIdsTouched.contains(cell.objectId.text!) {
            print("should invalidate buttons for cell with objectId \(cell.objectId.text!)")
        }
0
magellan 30 Окт 2019 в 01:56

1 ответ

Вам нужно сделать это внутри cellForRowAt

cell.likesButton.isEnabled = !(currentUserObjectIdsTouched.contains(cell.objectId.text!))

Хорошей практикой является сравнение с моделью напрямую, например

let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomCell
let item = arr[indexPath.row]
cell.likesButton.isEnabled = !(currentUserObjectIdsTouched.contains(item.objectId))
0
Sh_Khan 30 Окт 2019 в 02:27
Возвращает ошибку: значение типа «(Любой) -> ()» не имеет члена «isEnabled»
 – 
magellan
30 Окт 2019 в 02:04
Моя кнопка не подключена к моей текущей ВК. Он вложен в ячейку пера.
 – 
magellan
30 Окт 2019 в 02:05
Создайте для него iboutlet и сделайте что в ответ
 – 
Sh_Khan
30 Окт 2019 в 02:08
Файл пера не разрешает подключение к VC, только подключение к его ячейке swiftFile: Tableview.
 – 
magellan
30 Окт 2019 в 02:23
Да, подключите его к классу ячеек, а затем приведите ячейку, удаленную из очереди, к вашей, см. редактирование
 – 
Sh_Khan
30 Окт 2019 в 02:26