【发布时间】:2015-10-22 19:53:04
【问题描述】:
我希望为 iPhone、iPad 创建一个自定义键盘。我已成功将短语和表情符号集成到键盘中,但不知道如何在键盘中添加贴纸。
有人知道怎么加吗?
谢谢。
【问题讨论】:
-
你有没有找到为自定义键盘添加贴纸的教程?
-
抱歉@SamB 回复晚了,我找不到任何教程。
标签: objective-c iphone ios8 custom-keyboard
我希望为 iPhone、iPad 创建一个自定义键盘。我已成功将短语和表情符号集成到键盘中,但不知道如何在键盘中添加贴纸。
有人知道怎么加吗?
谢谢。
【问题讨论】:
标签: objective-c iphone ios8 custom-keyboard
我最近创建了一个自定义键盘,用于在 iPhone 上发送贴纸。我注意到这个问题被标记为 Objective-C,但我会在 Swift 中回复,因为我就是这样做的。
如果我正确理解您的问题,“在键盘中添加贴纸”可能是指类似于 Facebook Messenger 或 Peach 上的贴纸。我个人的灵感来自于想要创建类似于 Kim Kardashian 的 KIMOJI 应用程序的东西。这个自定义键盘扩展允许用户点击贴纸,复制它,然后将其粘贴到输入字段中发送。
首先,我在 AppCoda 上找到了这个很棒的自定义键盘教程:Creating a Custom Keyboard Using iOS 8 App Extension(用 Swift 编写)。本教程将引导您了解如何在应用程序中创建新的键盘扩展、添加包含按钮(或键)的视图以及应用适当的约束。但是,我发现为贴纸键盘创建按键的所有细节都不太必要。
按照教程,一旦您使用 KeyboardViewController 和 KeyboardView xib 创建了一个基本键盘,我添加了 UIButtons。在我的例子中,我添加了六个按钮来对应六个贴纸。第一个 UIView 行和第二个 UIView 行都各有三个按钮。我应用了约束,使每个按钮的高度和宽度相等(大约 100 x 100)。在 Storyboard 中,我单击了每个按钮,在属性检查器中,我将按钮“图像”属性设置为我在资产中拥有的相应贴纸图像。此外,为了确定适合我的键盘的高度,我发现了这个有用的资源:@987654322@。
注意:要创建贴纸,您需要某种图像。我自己画/设计了。您也可以使用 Adobe Illustrator 或同等程序来设计它们。
为每个按钮设置图像并运行应用程序后,图像可能不会出现。为了解决这个问题,我必须访问我的贴纸键盘 Target > Build Phases > Copy Bundle Resources 以确保包含 Assets.xcassets。再次运行应用程序,图像出现了。
接下来,假设您已经创建了一个与您的 KeyboardView.xib 对应的 KeyboardViewController,您可以为视图控制器中的每个按钮/贴纸创建一个对应的 @IBAction。我们希望用户将选择的贴纸复制到粘贴板,以便他们可以发送贴纸。要使您的自定义键盘能够访问粘贴板,请进入键盘扩展的 Info.plist 文件。在信息属性列表 > NSExtension > NSExtensionAttributes 下,将 RequestsOpenAccess 属性更改为 YES。
现在,您创建的 IBAction 方法可以为粘贴板分配适当的贴纸图像路径!我的代码大致是这样的:
@IBAction func stickerPressed(sender: UIButton) {
let image = UIImage(named: "sticker")
UIPasteboard.generalPasteboard().image = image
}
当您在设备上运行和测试您的应用并安装它时,点击键盘上的地球图标以切换到您的自定义键盘。点击按钮/贴纸,然后点击输入字段进行粘贴。在 Facebook Messenger 中,选项可能会显示为“发送照片”“编辑”或“取消”。在 Peach 或 Messages 中,它将内联发送。这仅取决于应用程序。
这个过程对我有用,我希望它可以帮助其他人!
【讨论】:
您可以在UICollectionView 或UITableView 中创建UIImageView,并在这些UIImageViews 中显示贴纸图像。当用户点击它们时,只需在该视图中显示UIImage。
【讨论】: