如何为为 UIButton 创建的自定义背景艺术实现 scale-9 (9-slice)

Posted

技术标签:

【中文标题】如何为为 UIButton 创建的自定义背景艺术实现 scale-9 (9-slice)【英文标题】:How to implement scale-9 (9-slice) for custom background art created for UIButton 【发布时间】:2009-07-23 15:50:25 【问题描述】:

为了对可变大小的 UIButton 使用相同的背景图像,我需要以编程方式执行哪些操作? (俗称9-slice scaling或scale-9)

【问题讨论】:

【参考方案1】:

我知道这是一个旧线程,但对于在 ios 5 发布后偶然发现此问题的任何人,应该从 Apple 的文档中注意到,从 iOS 开始,stretchableImageWithLeftCapWidth:topCapHeight: 方法已被弃用5:

Deprecated UIImage Methods

在 iOS 5.0 中已弃用。已弃用。改用 resizableImageWithCapInsets:指定 cap insets,使内部为 1x1 区域。

现在 iOS 6 已经发布并且很快就会出现,任何为 iOS 5 及更高版本开发的人都应该看看 resizableImageWithCapInsets,可以在此处找到文档:

UIImage Class Reference - resizableImageWithCapInsets

只是想我会提到它以帮助任何需要此问题的更新答案的开发人员。

【讨论】:

【参考方案2】:

退房:

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

在 UIImage 类中。

如果我正确理解您要查找的内容,这同时允许您使用一个 png 来定义按钮的外观,并且它将垂直或水平拉伸到任何尺寸。

【讨论】:

2009 年的好答案,但正如 Evan 所说,resizableImageWithCapInsets 现在是更新的 API

以上是关于如何为为 UIButton 创建的自定义背景艺术实现 scale-9 (9-slice)的主要内容,如果未能解决你的问题,请参考以下文章

如何为 UIButton 设置自定义渐变背景?

如何为android中的所有视图使用相同的自定义字体?

如何为我的自定义博客帖子创建档案?

如何为使用createwindow创建的窗口创建自定义背景颜色

如何为图像分割创建带有掩码的自定义图像数据集?(特别是对于 Tensorflow)

如何为 tableViewController 中的自定义单元格按钮创建手势识别器,以便能够识别它所在的单元格?