Как загрузить больше на JSQMessagesViewController и быстро 4.1

69
10

Как загрузить больше на JSQMessagesViewController и быстро 4.1

Я загружаю некоторый элемент, когда ChatViewController загружается по пределу и ему нужно загрузить больше элемента, когда он прибывает в позицию

Я написал код, но есть ошибка

что такое ошибка в моем коде?

override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
var visibleRect = CGRect()

visibleRect.origin = collectionView.contentOffset
visibleRect.size = collectionView.bounds.size

let visiblePoint = CGPoint(x: visibleRect.midX, y: visibleRect.midY)
guard let indexPath = collectionView.indexPathForItem(at: visiblePoint) else { return }
if minVisibleRect >= indexPath.row && !isLoading{

isLoading = true
let position = self.messages.count - 1
let query = Constants.refs.databaseChats.queryLimited(toLast: UInt(limit + messages.count)).queryEnding(atValue: uidLastMessage)
query.observeSingleEvent(of: .value, with: { (snapshot) in
if let data = snapshot.value as? NSDictionary,
data.count > 0
{
var tempUidLastMessage = ""
for messageDictionary in data {
if let messgeTemp = messageDictionary.value as? [String: String],
let id = messgeTemp["sender_id"],
let name = messgeTemp["name"],
let text = messgeTemp["text"],
!text.isEmpty
{
tempUidLastMessage = (messageDictionary.key as! String)
if self.uidLastMessage == tempUidLastMessage {
break
}
if let message = JSQMessage(senderId: id, displayName: name, text: text)
{
self.messages.insert(message, at: 0)

self.finishReceivingMessage()
}
}
}
if !tempUidLastMessage.isEmpty{
self.uidLastMessage = tempUidLastMessage
}
self.isLoading = false
scrollView.setContentOffset(CGPoint(x: 0, y: position), animated: true)

}
}) { (error) in
print("Error: \(error.localizedDescription)")
}
}
}

спросил(а) 2018-04-11T13:21:00+03:00 2 года, 2 месяца назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема