KBStickerView
演示
示例
要运行示例项目,克隆仓库,然后在 Example 目录中先运行 pod install
。
安装
KBStickerView 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中
pod 'KBStickerView'
使用方法
let kbstickerView = KBStickerView()
view.addSubview(kbstickerView)
let sitckerPack1: [Sticker] = [
Sticker(data: "ic_recent", resourceType: .assets),
Sticker(data: "ic_sticker", resourceType: .assets)
]
let stickerCategories: [StickerCategory] = [
StickerCategory(stickers: sitckerPack1, icon: "ic_sticker", iconResourceType: .assets)
]
let stickerProvider = StickerProvider(stickerCategories: stickerCategories, stickerDelegate: self, recentsEnabled: true)
kbstickerView.stickerProvider = stickerProvider
//to enable it, set it as an Input View
textView.inputView = kbstickerView
/*
to revert back to normal keyboard
textView.inputView = nil
textView.reloadInputViews()
*/
您负责加载贴纸图像和贴纸类别图像,您可以通过遵从协议来完成
extension ViewController: StickerProviderDelegate {
func didClickSticker(sticker: Sticker) {
dataSource.append(sticker)
tableView.reloadData()
}
func didChangePage(category: StickerCategory) {
}
func willLoadSticker(imageView: UIImageView, sticker: Sticker) {
if sticker.resourceType == .assets {
let stickerData = sticker.data
let stickerImage = UIImage(named: stickerData)
imageView.image = stickerImage
}
}
func willLoadStickerCategory(imageView: UIImageView, stickerCategory: StickerCategory, selected: Bool) {
if stickerCategory.iconResourceType == .assets {
let icon = stickerCategory.icon
imageView.image = UIImage(named: icon)
}
}
}
自定义
建议在执行此自定义操作之前 进行 kbstickerView.stickerProvider = stickerProvider
kbstickerView.categoriesViewBackground = .red
kbstickerView.selectedCategoryIconBackground = .brown
kbstickerView.categoryIconColorActive = .blue
kbstickerView.categoryIconColorNotActive = .black
kbstickerView.categoryIconSize = CGSize(width: 30, height: 30)
kbstickerView.recentCategoryIcon = "ic_recent"
kbstickerView.recentCategoryResourceType = .assets
kbstickerView.stickerItemSize = CGSize(width: 100, height: 100)
kbstickerView.stickerPageBackground = .black
注释
因为 willLoadStickerCategory
将在您的应用程序中调用,所以您必须将默认图标 ic_recent
包含在 Assets 文件夹中,或者将其更改为所需的图标。
待办事项
- 优化示例应用程序,特别是用户界面
- 当最近没有贴纸时,添加一个视图
作者
Achraf Rajjoub
许可
KBStickerView可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。