我如何在 quickblox iOS 代码中实现贴纸

Posted

技术标签:

【中文标题】我如何在 quickblox iOS 代码中实现贴纸【英文标题】:How can i implement stickers in to quickblox iOS code 【发布时间】:2017-01-07 11:32:09 【问题描述】:

我正在将 Stickers 集成到我的聊天视图控制器中。

但我无法理解我该如何推进它,Quickblox 文档中提供了一些代码 sn-p,但混淆了将代码放置在哪里以及如何处理贴纸。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

委托中的代码是什么。

请提出建议。

【问题讨论】:

嗨 Gaurav,我有同样的问题,如何在 iOS QuickBlox 应用程序中实现 StrikerPipe SDK。你得到解决方案了吗? 目前我没有任何解决方案。 【参考方案1】:

我们可以按照以下步骤添加贴纸,我已经添加了用于传出的类似我们也可以添加用于传入的

i)创建一个名为 QMChatStickerOutGoingCell 的单元格,并拥有 imageView 属性,比如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

【讨论】:

【参考方案2】:

当用户从'stickerviewcontroller' 中选择贴纸时,会调用didSelectStickerWithMessage 委托。 使用此委托方法从贴纸视图控制器接收贴纸消息并将其显示为 UIImageView ( UIImageView+Stickers.h) :-

- (void)stk_setStickerWithMessage: (NSString*)stickerMessage completion: (STKCompletionBlock)completion;

希望您能理解以上答案,详情可咨询查询。

【讨论】:

以上是关于我如何在 quickblox iOS 代码中实现贴纸的主要内容,如果未能解决你的问题,请参考以下文章

您如何在您的网站中实施 quickblox?

如何使用 Quickblox 在 Cordova 应用程序中实现推送通知支持?

在 React Js 中实现 Quickblox 视频会议时获取“DTLS 警报”

如何在ios中更新quickblox用户密码

QuickBlox 入门

Quickblox - 如何将通知推送到 Android 和 iOS 平台?