我正在为 iPhone 尚不支持的语言开发自定义 iOS 键盘。我想尽可能地复制默认的 L&F。我发现当用户触摸键盘时,默认的 ios 键盘可以被视为带有额外图像绘制的静态图像。
我希望我的键盘消耗尽可能少的资源。将同时显示 40 个按钮。正确的方法应该是什么?我可以看到以下不同的方法:
在应用程序启动时将整个键盘绘制到 UIImage(或 CGImage)(甚至只是将其存储在应用程序包中)并将其显示在视图控制器中。当用户触摸键盘时,它会添加 CALayer 并将其放置在正确的位置。
使用 CALayers 的层次结构。每个按钮都被视为单独的 CALayer。该按钮只是一个圆角矩形,中间有阴影和文本。
使用 UIButton 的层次结构。
3-rd 变体似乎是最自然的方法,但它引入了 40 个具有相应内部结构的 UIButton。1-st 变体在我看来是最轻的,但不是很通用,如果我决定改变一些东西的话。我不知道 CALayers 消耗多少内存,所以我不确定 2-nd 变体。