Rxswift скрыть кнопку внутри UITableViewCell после нажатия

У меня есть addButton внутри UITableCieCwell. Я хочу, чтобы addButton исчезал после того, как пользователь щелкнул по нему, поэтому я создал Action и привязал его к addButton.

Тем не менее, все addButton исчезли, хотя я только запускаю свое приложение.

Я очень новичок в RxSwift, пожалуйста, помогите мне.

Bind UI

viewModel.courses
        .asObservable()
        .bind(to: collectionView.rx.items(cellIdentifier: AddableCourseCell.reuseIdentifier, cellType: AddableCourseCell.self)) { (row, element, cell) in

            let action = self.viewModel.actions.value[row]
            action.enabled.asObservable()
                .bind(to: cell.addButton.rx.isHidden)
                .disposed(by: self.disposeBag)

            cell.addButton.rx
                .tap
                .debounce(0.3, scheduler: MainScheduler.instance)
                .subscribe({ (event) in

                    action.execute(element)

                }).disposed(by: cell.disposeBag)

        }.disposed(by: disposeBag)

ViewModel

class ViewModel {

    var courses: Variable<[Course]> = Variable([])
    var selectedCourses: Variable<[Course]> = Variable([])
     var actions = Variable<[Action<Course, Bool>]>([])

    private func generateAddActions(courses: [Course]) -> [Action<Course, Bool>] {
        var actions: [Action<Course, Bool>] = []
        for _ in courses {
            let action = Action<Enrollment, Bool>(workFactory: { (input) -> Observable<Bool> in
                let isAdded = selectedCourses.value.contains(input)
                if !isAdded {
                    self.selectedCourses.value.append(input)
                }
                return Observable.just(isAdded)
            })
            actions.append(action)
        }
        return actions
    }
}

1 ответ

Привет один совет, который я могу дать вам, чтобы добавить .debug() в action наблюдаемый, чтобы вы могли видеть испускаемые значения. Тем не менее, я полагаю, что причиной ваших проблем является то, что action начальное значение наблюдаемой true который ограничен isHidden атрибут addButton

Другие вопросы по тегам