KBStickerView 0.1.2

KBStickerView 0.1.2

AbdulAlim Rajjoub 维护。



KBStickerView

CI Status Version License Platform

演示

demo image

示例

要运行示例项目,克隆仓库,然后在 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 文件夹中,或者将其更改为所需的图标。

待办事项

  1. 优化示例应用程序,特别是用户界面
  2. 当最近没有贴纸时,添加一个视图

作者

Achraf Rajjoub

许可

KBStickerView可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。