ThreadsMobileLib / edna-sdk-ios

edna iOS sdk release libraries and demo project
11 stars 4 forks source link

После отправки сообщения, сообщение отображается под полем ввода. #6

Closed Megal closed 5 years ago

Megal commented 5 years ago

Версия библиотеки: 2.43.0

Чат отображается в отдельном табе UITabBarController.

screen shot 2018-11-22 at 14 07 20 Фактический результат: Сразу после отправки сообщения, сообщение отображается под полем ввода. Только если проскроллить вручную до конца истории, то сообщение видно.

Ожидаемый результат: Сообщение видно полностью после отправки.

Код интеграции:

import UIKit

#if !targetEnvironment(simulator)
//import Threads
#endif // !targetEnvironment(simulator)

protocol NewChatViewProtocol: class {}

class NewChatViewController: UIViewController {

    private let chatService: MinimumChatService
    #if !targetEnvironment(simulator)
    private var attributes = THRAttributes()
    #endif // !targetEnvironment(simulator)

    init(chatService: MinimumChatService) {
        self.chatService = chatService

        super.init(nibName: nil, bundle: nil)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()

        configure()
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        hideNaivgationBar(animated)
        chatService.startSessionIfNeeded()
    }

}

private extension NewChatViewController {

    func configure() {
    #if !targetEnvironment(simulator)
        attributes.navigationBarVisible = true
        attributes.navigationBarBackgroundColor = .white
        attributes.navigationBarTintColor = UIColor.darkText

        Threads.setAttributes(attributes)
        self.navigationItem.rightBarButtonItem?.isEnabled = false

        if self.children.count < 1 {
            DLog("Adding threads controller")
            Threads.show(in: view, parentController: self, bottomSpacing: self.tabBarController?.tabBar.frame.height ?? 0.0)
        }
    #endif // !targetEnvironment(simulator)
    }

    func hideNaivgationBar(_ animated: Bool) {
        self.navigationController?.setNavigationBarHidden(true, animated: animated)
    }

}
Luten commented 5 years ago

Проблема происходит если вью в которой показывается Threads залезает под таббар.

P.S: Параметром bottomSpacing отступ чата внутри вьюхи не регулируется - им регулируется отступ инпута.