繁体   English   中英

无法在Xcode中正确添加Capinsets

[英]Can't add properly capinsets in Xcode

我正在为iOS 8使用自定义键盘。并且我有按键按钮背景的图像。 例如让我们拿这个-> 在此处输入图片说明

将来,此图像将具有圆角。 问题是空格按钮,如果要为背景图像图像添加此图像将被调整大小,并且圆角不会如我所愿(因为空格按钮太长)。 所以我决定添加卡宾集。 在这种情况下,图片为64x64,卡宾盒距离顶部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中是同样的问题。 当我在空间按钮背景(最长的按钮)中添加这样的卡宾枪时,灰色和黑色之间的中线不再居中(按钮越长-该线越低)。 谁知道为什么? 我该如何解决? 和屏幕: 在此处输入图片说明 如果我正在使用这样的代码:

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
    }

我得到这样的结果 在此处输入图片说明

瓶盖插图不是从中心计算的。 它们是从侧面计算的。 盖帽插图从各个侧面定义了您不希望拉伸图像的尺寸。 就您而言,我认为您只是想要:

UIEdgeInsets(top: 1, left: 1, bottom: 1, right: 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM