iphone - 是否可以确定 UIImage 是否可拉伸(stretch)?

标签 iphone objective-c ios uiimage

我正在尝试在自定义按钮类中重用一小段代码。为此,我需要传入不可拉伸(stretch)的图像(图标)或可拉伸(stretch)的图像(“swoosh”)。在代码中,我需要设置 rect 来绘制高度,所以理想情况下,我想简单地确定图像是否可拉伸(stretch)?如果不是,我会按照图像的大小绘制它,如果不是,我会在包含矩形的边界处绘制。

根据我目前的调查,capInsets (iOS 5) 或 leftCapWidth/topCapHeight(iOS 5 之前的版本)对此没有用。

我可以使用核心或 quartz 信息中的某些东西吗?

只是好奇,现在我用一个额外的参数围绕它编码。

** 从那以后我通读了 CGImageRef 和 CI 等价物 **

据我所知,没有我们可以访问的信息来识别此类图像,这就引出了操作系统如何知道的问题?

最佳答案

除非您进行一些深入的图像分析(这不会是 100% 正确的),否则无法检测到这一点。 UIImage 本质上是一些带有元信息的像素,所有这些都是从您加载它的文件中获得的。任何文件格式都不会包含该信息。

但是,您可以将一些信息编码到图像的文件名中。如果您有一个名为 foo.png 的可拉伸(stretch)图像,为什么不将其命名为 foo.stretch.png?您的加载例程可以分析文件名并提取您可以与 UIImage 关联的元信息(有关关联对象,请参阅 http://labs.vectorform.com/2011/07/objective-c-associated-objects/),或者通过创建您自己的类来将 UIImage 与元信息组合在一起。

祝你研究顺利。

关于iphone - 是否可以确定 UIImage 是否可拉伸(stretch)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9892429/

相关文章:

objective-c - 切换选项卡时没有获取 viewDidLoad 或 Appear——我可以使用 NSNotification 吗?

iphone - iOS中定时器的实现方式

iphone - MFMessageComposeViewController 中的收件人数量有限制吗?

iphone - 快速枚举在objective-c中没有给出正确的对象类型?

ios - 如何更改ios中特定单词的颜色

iphone - MPMoviePlayerController 不适用于 iOS 5

ios - 如何在 Titanium iphone 中设置行高动画

ios - UITextView 禁用文本选择

ios - 带有 adjustsFontSizeToFitWidth 的多行 UILabel

ios - iOS 7 和 8 中的启动屏幕和图标尺寸问题和混淆