我如何在 quickblox iOS 代码中实现贴纸
How can i implement stickers in to quickblox iOS code
我正在将 Stickers 集成到我的 chatviewcontroller 中。
但我无法理解如何推进它,Quickblox 文档中提供了一些代码片段,但混淆了放置代码的位置以及如何处理贴纸。enter code here
https://quickblox.com/developers/SimpleSample-chat_users-ios#Stickers
1 . pod "StickerPipe" - Done
2 . [STKStickersManager initWitApiKey:@"API_KEY"]; - Done
3. if ([STKStickersManager isStickerMessage:message]) {
[self.stickerImageView stk_setStickerWithMessage:message placeholder:nil placeholderColor:nil progress:nil completion:nil];
}
这是我需要为聊天输入文本视图编写的代码吗?以及如何
@property (strong, nonatomic) STKStickerController *stickerController;
self.inputTextView.inputView = self.stickerController.stickersView;
[self reloadStickersInputViews];
写了 属性 ,但不确定如何处理贴纸
5。
- (void)stickerController:(STKStickerController *)stickerController didSelectStickerWithMessage:(NSString *)message {
//Send sticker message
}
委托中的代码是什么。
请推荐。
当来自 'stickerviewcontroller'
的用户 select 贴纸时,调用 didSelectStickerWithMessage
委托。
使用此委托方法从贴纸视图控制器接收贴纸消息并使用 UIImageView (
UIImageView+Stickers.h)
显示它:-
- (void)stk_setStickerWithMessage: (NSString*)stickerMessage
completion: (STKCompletionBlock)completion;
以上回答希望您能看懂,详细可以咨询
我们可以通过以下步骤添加贴纸,我已经为传出添加了类似的我们也可以为传入添加
i)创建一个名为 QMChatStickerOutGoingCell 的单元格,并具有 imageView 属性 say stickerImageView
ii)ChatViewController(QMChatViewController 的子类)需要知道 QMChatStickerOutGoingCell 的单元格类型,所以我们可以像下面那样执行
- (Class)viewClassForItem:(QBChatMessage *)item {
if ([STKStickersManager isStickerMessage: item.text]) {
return [QMChatStickerOutGoingCell class];
}
//Add condition for other cells
}
iii)更新贴纸
- (void)collectionView:(QMChatCollectionView *)collectionView
configureCell:(UICollectionViewCell *)cell forIndexPath:(NSIndexPath
*)indexPath{
[super collectionView:collectionView configureCell:cell forIndexPath:indexPath];
QMChatCell *chatCell = (QMChatCell *)cell;
// subscribing to cell delegate
[chatCell setDelegate:self];
[chatCell containerView].highlightColor = [UIColor colorWithWhite:0.5 alpha:0.5];
QBChatMessage *message = [self.chatDataSource messageForIndexPath:indexPath];
if ([cell isKindOfClass:[QMChatStickerOutGoingCell class]]){
[chatCell containerView].bgColor = [UIColor redColor];
[(QMChatStickerOutGoingCell *)chatCell fillWithStickerMessage: message.text downloaded: [self.stickerController isStickerPackDownloaded: message.text]];
}
//Handle for other cells
}
我正在将 Stickers 集成到我的 chatviewcontroller 中。
但我无法理解如何推进它,Quickblox 文档中提供了一些代码片段,但混淆了放置代码的位置以及如何处理贴纸。enter code here
https://quickblox.com/developers/SimpleSample-chat_users-ios#Stickers
1 . pod "StickerPipe" - Done
2 . [STKStickersManager initWitApiKey:@"API_KEY"]; - Done
3. if ([STKStickersManager isStickerMessage:message]) {
[self.stickerImageView stk_setStickerWithMessage:message placeholder:nil placeholderColor:nil progress:nil completion:nil];
}
这是我需要为聊天输入文本视图编写的代码吗?以及如何
@property (strong, nonatomic) STKStickerController *stickerController;
self.inputTextView.inputView = self.stickerController.stickersView;
[self reloadStickersInputViews];
写了 属性 ,但不确定如何处理贴纸
5。
- (void)stickerController:(STKStickerController *)stickerController didSelectStickerWithMessage:(NSString *)message {
//Send sticker message
}
委托中的代码是什么。
请推荐。
当来自 'stickerviewcontroller'
的用户 select 贴纸时,调用 didSelectStickerWithMessage
委托。
使用此委托方法从贴纸视图控制器接收贴纸消息并使用 UIImageView (
UIImageView+Stickers.h)
显示它:-
- (void)stk_setStickerWithMessage: (NSString*)stickerMessage
completion: (STKCompletionBlock)completion;
以上回答希望您能看懂,详细可以咨询
我们可以通过以下步骤添加贴纸,我已经为传出添加了类似的我们也可以为传入添加
i)创建一个名为 QMChatStickerOutGoingCell 的单元格,并具有 imageView 属性 say stickerImageView
ii)ChatViewController(QMChatViewController 的子类)需要知道 QMChatStickerOutGoingCell 的单元格类型,所以我们可以像下面那样执行
- (Class)viewClassForItem:(QBChatMessage *)item {
if ([STKStickersManager isStickerMessage: item.text]) {
return [QMChatStickerOutGoingCell class];
}
//Add condition for other cells
}
iii)更新贴纸
- (void)collectionView:(QMChatCollectionView *)collectionView
configureCell:(UICollectionViewCell *)cell forIndexPath:(NSIndexPath
*)indexPath{
[super collectionView:collectionView configureCell:cell forIndexPath:indexPath];
QMChatCell *chatCell = (QMChatCell *)cell;
// subscribing to cell delegate
[chatCell setDelegate:self];
[chatCell containerView].highlightColor = [UIColor colorWithWhite:0.5 alpha:0.5];
QBChatMessage *message = [self.chatDataSource messageForIndexPath:indexPath];
if ([cell isKindOfClass:[QMChatStickerOutGoingCell class]]){
[chatCell containerView].bgColor = [UIColor redColor];
[(QMChatStickerOutGoingCell *)chatCell fillWithStickerMessage: message.text downloaded: [self.stickerController isStickerPackDownloaded: message.text]];
}
//Handle for other cells
}