【问题标题】:Can't add properly capinsets in Xcode无法在 Xcode 中正确添加 capinset
【发布时间】:2014-07-26 11:44:05
【问题描述】:

我正在为 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
    }

我得到了这样的结果

【问题讨论】:

  • 图片是什么样的?发布您获得的结果的屏幕截图。
  • 我不在我的 mac 电脑上,但我自己制作了它的样子。 Alos 我看到 capinsets 不是 1 像素,而是 2 像素,这东西会不会有问题?
  • 发布原始图像、您使用图像的上下文以及您获得的实际结果的屏幕截图。
  • 我已经添加了您想要的更改,但我无法发布上下文,因为代码太多,无法理解我在哪里以及如何调用这些函数。

标签: ios objective-c swift uiedgeinsets


【解决方案1】:

瓶盖插入不是从中心计算的。它们是从侧面计算的。帽插图定义了您不希望图像被拉伸的每一侧的大小。就你而言,我认为你只是想要:

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

【讨论】:

  • 我添加的第二张图片是按照您所说的计算 capinsets 的结果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 2014-09-22
  • 2021-01-12
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多