在iOS中自定义“可调整大小的图像”绘图

时间:2013-11-21 10:03:50

标签: ios objective-c uiimage quartz-2d

UIImage API提供了以某些区域被拉伸的方式调整图像大小的方法,而其他区域保持不变 - 非常适合可调整大小的UI元素的背景图像。

现在我正在寻找一种方法来为更复杂的背景图像自定义此行为。

这是- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets;的作用。透明区域保持不变,当视图大小改变时,红色区域会被拉伸。

enter image description here

这就是我想要的 - 对拉伸区域进行更精细的控制:

enter image description here

我想我必须通过覆盖我的UIView子类的-(void)drawRect:方法然后使用Quartz来绘制图像来做到这一点。

我无法弄清楚我必须使用哪种系统API。

有人能给我一个提示如何做到这一点吗? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

我会在里面使用三个独立的UIImageViews和resizableImageWithCapInsets。您也可以在drawRect中使用,例如,CGPattern,但在缩放视图时会出现性能问题。