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

Posted

技术标签:

【中文标题】iOS中的自定义“可调整大小的图像”绘图【英文标题】:Custom "resizable image" drawing in iOS 【发布时间】:2013-11-21 10:03:49 【问题描述】:

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

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

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

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

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

我只是不知道我必须使用哪些系统 API。

谁能给我一个提示如何做到这一点?

【问题讨论】:

你找到答案了吗?我现在面临同样的问题... 不幸的是,我现在一直在使用多个 UIImageView。它并不优雅,但它正在工作。如果您发现更好的东西,请随时通知我! 【参考方案1】:

我将只使用三个单独的 UIImageViews,其中包含 resizableImageWithCapInsets。您也可以在 drawRect 中使用,例如 CGPattern,但是在缩放视图时会遇到性能问题。

【讨论】:

我不想使用多个 UIImageViews,抱歉我应该提到这一点。我已经尝试过这种方法,它有效,但由于与此上下文无关的原因,它不适合我的情况。

以上是关于iOS中的自定义“可调整大小的图像”绘图的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中创建可调整大小的图像/矩形 - Objective C

尝试使用可调整大小的图像设置自定义 backBarButtonItem 图像/困难

在画布上制作可拖动、可调整大小的图像

css 可调整大小的图像

带有标题的 CSS 可调整大小的图像

CSS 使用CSS创建可调整大小的图像