如何为为 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)的主要内容,如果未能解决你的问题,请参考以下文章
如何为使用createwindow创建的窗口创建自定义背景颜色