【发布时间】:2018-02-15 00:40:46
【问题描述】:
我发现大多数关于 iMessage 扩展开发的 iMessage 应用教程都是用 Swift 编写的,因为我是 Objective-c 的初学者,并且必须快速实现 iMessage 扩展我想用 Objective-C 编码我发现MSStickerBrowserViewController 是一些方法像UITableViewController 因为它使用数据源协议对吗?
所以我像这样实现我的 iMessage 扩展应用程序:
@interface MessagesViewController ()<MSStickerBrowserViewDataSource>
@property (strong, nonatomic) NSMutableArray *stickerList;
@end
我已经实现了
stickerBrowserView:(MSStickerBrowserView *)stickerBrowserView stickerAtIndex:(NSInteger)index
和
(NSInteger) numberOfStickersInStickerBrowserView:(MSStickerBrowserView *)stickerBrowserView
方法并初始化 stickerList 作为 viewController 的属性
我认为添加MSStickerViewController并将其作为根视图的子视图会很好,然后我的工作就完成了
MSStickerBrowserViewController *stickerBrowserViewController = [[MSStickerBrowserViewController alloc]initWithStickerSize:MSStickerSizeRegular];
stickerBrowserViewController.view.backgroundColor = [UIColor redColor];
[self.view addSubview:stickerBrowserViewController.view];
但在这样做之后,我唯一得到的是红色内容(表明 MSStickerBrowserViewController 的视图确实已添加到根视图中)
但我的图片都没有显示为贴纸
我认为MSStickerBrowserViewController 的数据资源可能缺少一些挂钩,但我找不到委托或资源属性来挂钩它们。
我还注意到有一些 override 的东西可以用 swift 代码来做这件事,但是我是否必须创建一个 MSStrickerBrowserViewController 的子类并在子类中实现 MSStickerBrowserViewDataSource 的协议才能做到这一点?
那么如何使这项工作,我的意思是使用 Objective-C 代码?
【问题讨论】:
标签: ios objective-c imessage