Ios 如何在不使用Swift中的fireBase的情况下制作MessageKit聊天应用程序?
我需要在不使用Swift中的FireBase的情况下创建MessageKit聊天应用程序Ios 如何在不使用Swift中的fireBase的情况下制作MessageKit聊天应用程序?,ios,swift4,messagekit,Ios,Swift4,Messagekit,我需要在不使用Swift中的FireBase的情况下创建MessageKit聊天应用程序 提前感谢。消息包完全不绑定到Firebase,您可以使用任何您想要的数据库。以下是您可以执行的操作: 创建MyMessagesViewController并从MessagesViewControllerMessageKit扩展它 final类MyMessagesViewController:MessagesViewController{ ... } 创建自己的InputBarAccessoryView扩展
提前感谢。消息包完全不绑定到Firebase,您可以使用任何您想要的数据库。以下是您可以执行的操作:
MyMessagesViewController
并从MessagesViewController
MessageKit扩展它final类MyMessagesViewController:MessagesViewController{
...
}
InputBarAccessoryView
扩展视图,覆盖override func setup()
,并设置子视图和布局final类MyInputBarAccessoryView:InputBarAccessoryView{
覆盖函数设置(){
super.setup()
//所有的设置都在这里
}
}
并在MyMessagesViewController
中创建messageInputBar
:
required init(…){
messageInputBar=MyInputBarAccessoryView()
}
覆盖变量可以成为第一响应者:Bool{
返回真值
}
覆盖变量inputAccessoryView:UIView?{
返回消息输入栏
}
MessagesCollectionViewFlowLayout
,覆盖cellsizecalculatoritem(at:)
,并创建您自己的CellSizeCalculator
,覆盖messageContainerSize(for:)
为每个新邮件返回CGSize
类MyMessagesCollectionViewFlowLayout:MessagesCollectionViewFlowLayout{
私有let sizeCalculator=MyMessageSizeCalculator()
public override func cellSizeCalculatorForItem(在indexPath:indexPath)->CellSizeCalculator{
如果case.custom=message.kind{
返回尺寸计算器
}
返回super.cellSizeCalculatorForItem(位于:indexPath)
}
}
类MyMessageSizeCalculator:MessageSizeCalculator{
重写func messageContainerSize(对于message:MessageType)->CGSize{
返回大小//在这里,您必须根据消息计算单元格大小
}
}
MyMessagesViewController
viewDidLoad方法中,创建MessageCollectionView
,为单元格和设置委托注册NIBoverride func viewDidLoad(){
super.viewDidLoad()
messageCollectionView=messageCollectionView(
帧:。零,
collectionViewLayout:MyCollectionViewFlowLayout()
)
//这里的常见设置
//代表
messagesCollectionView.messagesDataSource=self
}
MessagesDataSourceDelegate
方法上,实现currentssender()
并返回您自己的currentssender,就像使用Firebase时一样,但现在您必须使用服务器发件人ID或类似的东西。在创建自己的自定义单元格时,请实现customCell(for:,at:,in:)
,并将已注册的单元格正确出列func currentssender()->SenderType{
//您必须创建一些从SenderType扩展的模型,然后返回到这里,好吗?
返回myClientSender
}
func自定义单元格(
对于message:MessageType,
在indexPath:indexPath,
在messagesCollectionView:messagesCollectionView)->UICollectionViewCell中{
//基于消息和索引XPath正确地将单元格出列
返回单元
}
它是MessageKit自定义单元格的基本实现。显然,您希望实现更多的东西
我希望它能帮助你:)