diff --git a/iOS/IMUIInputView/Controllers/IMUIInputView.swift b/iOS/IMUIInputView/Controllers/IMUIInputView.swift index 5f89373f..b2a011cf 100644 --- a/iOS/IMUIInputView/Controllers/IMUIInputView.swift +++ b/iOS/IMUIInputView/Controllers/IMUIInputView.swift @@ -464,6 +464,7 @@ extension IMUIInputView: IMUICustomInputViewDelegate { public func keyBoardWillShow(height: CGFloat, durationTime: Double) { self.currentType = .empty + self.delegate?.keyBoardWillShow?(height: height, durationTime: durationTime) self.reloadFeaturnView() } } diff --git a/iOS/IMUIMessageCollectionView/Views/IMUIMessageCollectionView.swift b/iOS/IMUIMessageCollectionView/Views/IMUIMessageCollectionView.swift index 355372ab..468bf0fd 100644 --- a/iOS/IMUIMessageCollectionView/Views/IMUIMessageCollectionView.swift +++ b/iOS/IMUIMessageCollectionView/Views/IMUIMessageCollectionView.swift @@ -90,7 +90,10 @@ open class IMUIMessageCollectionView: UIView { @objc open func scrollToBottom(with animated: Bool) { if chatDataManager.count == 0 { return } let endIndex = IndexPath(item: chatDataManager.endIndex - 1, section: 0) - self.messageCollectionView.scrollToItem(at: endIndex, at: .bottom, animated: animated) + DispatchQueue.main.async { + self.messageCollectionView.scrollToItem(at: endIndex, at: .bottom, animated: animated) + } + } @objc open func appendMessage(with message: IMUIMessageProtocol) { diff --git a/iOS/sample/sample/ViewController.swift b/iOS/sample/sample/ViewController.swift index 53919427..662b4f15 100644 --- a/iOS/sample/sample/ViewController.swift +++ b/iOS/sample/sample/ViewController.swift @@ -42,6 +42,7 @@ class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.myInputView.delegate = self +// self.myInputView.inputViewDelegate = self self.messageCollectionView.delegate = self self.messageCollectionView.messageCollectionView.register(MessageEventCollectionViewCell.self, forCellWithReuseIdentifier: MessageEventCollectionViewCell.self.description()) @@ -61,6 +62,10 @@ class ViewController: UIViewController { // MARK: - IMUIInputViewDelegate extension ViewController: IMUIInputViewDelegate { + func keyBoardWillShow(height: CGFloat, durationTime: Double) { + self.messageCollectionView.scrollToBottom(with: true) + } + func sendTextMessage(_ messageText: String) { let outGoingmessage = MyMessageModel(text: messageText, isOutGoing: true) let inCommingMessage = MyMessageModel(text: messageText, isOutGoing: false) @@ -215,3 +220,4 @@ extension ViewController: IMUIMessageMessageCollectionViewDelegate { toast.dismiss(withClickedButtonIndex: 0, animated: true) } } + diff --git a/iOS/sampleObjectC/sampleObjectC/ViewController.m b/iOS/sampleObjectC/sampleObjectC/ViewController.m index 097a4cb9..63627ab9 100644 --- a/iOS/sampleObjectC/sampleObjectC/ViewController.m +++ b/iOS/sampleObjectC/sampleObjectC/ViewController.m @@ -27,6 +27,7 @@ - (void)viewDidLoad { [super viewDidLoad]; self.messageList.delegate = self; self.imuiInputView.delegate = self; + self.imuiInputView.inputViewDelegate = self; [self.messageList.messageCollectionView registerClass:[MessageEventCollectionViewCell class] forCellWithReuseIdentifier:[[MessageEventCollectionViewCell class] description]]; @@ -191,7 +192,7 @@ - (void)finishRecordVideoWithVideoPath:(NSString * _Nonnull)videoPath durationTi } - (void)keyBoardWillShowWithHeight:(CGFloat)height durationTime:(double)durationTime { - + [_messageList scrollToBottomWith: YES]; } - (NSString *)getPath {//"\(NSHomeDirectory())/Documents/"