我正在为 iOS 8 开发自定义键盘。我有按键背景的图像。例如让我们拿这个 ->
将来,此图像将具有圆角。如果要为背景图像添加此图像,则问题出在空格按钮上,并且将调整大小并且圆角不会像我想要的那样(因为空格按钮太长)。所以我决定添加capinset。在这种情况下,图片为 64x64,capinsets 距顶部 2 个像素,距左侧 2 个像素,距底部和右侧 2 个像素。因为在 Xcode 中 capinsets 是从中心计算的,所以我编写了这样的代码(在这种情况下,borderSize == 0):
private func imageWithCapinsetsForImage(initalImage: UIImage) -> UIImage {
let halfOfImageWidth = currentImage.size.width / 2
let halfOfImageHeight = currentImage.size.height / 2
let capinsetsCalculatedFromImageCenter = UIEdgeInsets(top: halfOfImageHeight - capinsets.top - borderSize, left: halfOfImageWidth - capinsets.left - borderSize, bottom: halfOfImageHeight - capinsets.bottom - borderSize, right: halfOfImageWidth - capinsets.right - borderSize)
let imageWithCapinsets = initalImage.resizableImageWithCapInsets(capinsetsCalculatedFromImageCenter)
return imageWithCapinsets
}
它是 Swift 语言的代码,在 Objective-C 中也是同样的问题。当我在空间按钮背景(最长的按钮)中添加这样的 capinsets 时,灰色和黑色之间的中心线不再位于中心(较长的按钮 - 该线越低)。谁知道为什么?我该如何解决?和屏幕: 如果我正在使用这样的代码:
private func imageWithCapinsetsForImage(initalImage: UIImage) -> UIImage {
let capinsetsCalculatedFromImageCenter = UIEdgeInsets(top: capinsets.top + borderSize, left: capinsets.left + borderSize, bottom: capinsets.bottom + borderSize, right: capinsets.right + borderSize)
let imageWithCapinsets = initalImage.resizableImageWithCapInsets(capinsetsCalculatedFromImageCenter)
return imageWithCapinsets
}
我得到了这样的结果