Rxswift 点击后隐藏 UITableViewCell 内的按钮



我在UITableCieCwell中有一个addButton。我希望addButton在用户单击后消失,所以我创建了一个操作并将其绑定到addButton。

但是,尽管我只是运行我的应用程序,但所有 addButton 都消失了。

我是 RxSwift 的新手,请帮帮我。

绑定用户界面

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)

视图模型

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
    }
}
嗨,

我可以给你的一个提示是在可观察action中添加一个.debug(),以便你可以看到发出的值。但是,我相信给您带来麻烦的是action可观察量的初始值是true它与addButtonisHidden属性有关

最新更新