如何使用CALayer切片图像

时间:2016-03-05 13:23:37

标签: ios uiimageview calayer assets

我将图像存储在资产目录中并设置为切片(9切片,因为我根据我的背景调用它)。如果您以不同的尺寸绘制图像,这允许您使用具有圆角或形状角的图像来保持角的纵横比。图像的中间被拉伸以适应不同的尺寸。

我在资产目录中进行了切片设置,如果我在UIImageView中使用图像,则按预期工作。

但是,如果我尝试通过设置内容使用CALayer图像,则它不起作用。如果您没有使用切片,图像会显示为您所期望的。

我这样设置:

borderImageLayer = [CALayer layer];
borderImageLayer.contents = (id) _borderImage.CGImage;
borderImageLayer.frame = self.bounds;
[self.layer addSublayer:borderImageLayer];

所以,我的问题是,你如何让CALayer使用切片图像?有可能吗?

1 个答案:

答案 0 :(得分:0)

你在谈论可伸缩的图像,对吗? CALayer不支持可伸缩图像。你必须自己构建它,这将是相当多的工作。为什么呢? UIImage已经支持可伸缩的图像。这是一个“解决了问题”。只需使用它。

编辑:

如果你真的需要使用图层,那么我建议创建一个CALayer的自定义子类,它设置9个子图层,将图像图块安装为每个子图层的内容,并通过调整图块大小来响应调整大小。