我正在使用iOS 8的自定义键盘。我有关键按钮背景的图像。例如,让我们拿一个 - >
将来这张图片会有圆角。问题在于使用空格按钮,如果为背景图像图像添加此图像将调整大小并且圆角将与我一样(因为空格按钮太长)。所以我决定添加capinsets。在这种情况下,图片是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
}
我得到了这样的结果
答案 0 :(得分:0)
不会从中心计算上限。它们是从侧面计算的。帽子插图定义了您不希望图像被拉伸的每一侧的大小。在你的情况下,我认为你只是想:
UIEdgeInsets(top: 1, left: 1, bottom: 1, right: 1)