【问题标题】:Swift: Size of UIImage when slicing enabledSwift:启用切片时 UIImage 的大小
【发布时间】:2021-04-25 00:11:49
【问题描述】:
当我在 Xcode 的 assets 文件夹中切片图像时,UIImage 的 size 属性返回错误值。有谁知道启用切片时如何获得真实的图像大小?大小是以像素为单位还是以点为单位无关紧要。
或者也许有一种方法可以获取图像圆形部分的大小,以便我可以在代码中添加 cap insets?
这就是我在 Xcode 中切片图像的方式:
或者,也许有一种方法可以找到图像中突出显示(较暗)部分的大小?
我会很感激任何想法!
【问题讨论】:
标签:
swift
uiimage
size
slice
【解决方案1】:
在资产中“切片”图像时,您无需设置 cap insets - 它会自动完成。
如果您确实需要获取“切片”值,可以通过.capInsets 属性读取它们:
guard let img = UIImage(named: "sliced") else { return }
print("image size:", img.size)
print("caps insets:", img.capInsets)
我的快速测试 - 使用默认切片输出的 200 x 60 “胶囊”图像,角半径为 20 像素:
image size: (39.0, 60.0)
caps insets: UIEdgeInsets(top: 0.0, left: 19.0, bottom: 0.0, right: 19.0)
所以,width 是左插图加上右插图加上 1(一)...因为中心部分会拉伸以适应,所以该部分的“默认*宽度”是1.