2

我正在使用 Chatto 库 ( https://github.com/badoo/Chatto ) 作为聊天窗口,并初始化从其 BaseChatViewController 继承的视图控制器。

我遇到的问题是,虽然滚动视图可以一直滚动到对话的顶部和底部,但滚动条停止的位置与顶部和选项卡上的导航栏大小相同底部的栏。

Chatto 演示应用似乎没有这个问题,所以我想知道在我的应用中是否应该做一些不同的事情。

在此处输入图像描述

这是视图控制器

import Chatto
import ChattoAdditions
import RxSwift
import UIKit

class ConversationViewController: BaseChatViewController {

  var viewModel: ConversationViewModel!

  private let disposeBag = DisposeBag()

  override func viewDidLoad() {

    super.viewDidLoad()

    title = viewModel.title

  }

  override func viewWillAppear(_ animated: Bool) {

    super.viewWillAppear(animated)

    loadViewModel()

  }

  override func createChatInputView() -> UIView {

    return viewModel.chatInputView

  }

  override func createPresenterBuilders() -> [ChatItemType: [ChatItemPresenterBuilderProtocol]] {

    return viewModel.presenterBuilders

  }

}

// MARK: - MessagesSelectorDelegate

extension ConversationViewController: MessagesSelectorDelegate {

  func messagesSelector(_: MessagesSelectorProtocol, didSelectMessage _: MessageModelProtocol) {

    enqueueModelUpdate(updateType: .normal)

  }

  func messagesSelector(_: MessagesSelectorProtocol, didDeselectMessage _: MessageModelProtocol) {

    enqueueModelUpdate(updateType: .normal)

  }

}

// MARK: - Helpers

extension ConversationViewController {

  private func loadViewModel() {

    ActivityIndicator.shared.show(on: view)

    viewModel.load()
      .subscribe { [weak self] event in

        guard let self = self else {

          Log.error(
            "The ConversationViewController, while reacting to it's viewModel loading, was unable to unwrap self"
          )

          return

        }

        ActivityIndicator.shared.hide()

        switch event {

        case .completed:

          return

        case let .error(error):

          Log.error(error)

          self.presentErrorAlert(error)

        }

      }
      .disposed(by: disposeBag)

  }

}
4

0 回答 0