0

我正在尝试控制图像。以下几行有效:

UIImage *image = [UIImage imageNamed:@"Cloud-Small.png"];

但是,我扩展它并尝试强制大小:

UIImage *image = [[UIImage imageNamed:@"Cloud-Small.png"] _imageScaledToSize:CGSizeMake(30.0f, 32.0f) interpolationQuality:1];

我得到一个

“UIIImage”没有可见的@interface 声明选择器“interpolationQuality”

有任何想法吗?这条线位于一个cellForRowAtIndexPath:方法中。

4

1 回答 1

2

问题是该_imageScaledToSize:interpolationQuality:方法在 iOS 中不再可用。您可能发现它在网上搜索代码,并找到了一个非常旧的帖子。我刚刚通过使用 class-dump 转储 UIKit 框架检查了UIKit/UIImage.h标头,并且在iOS 5.0中没有命名私有方法。_imageScaledToSize:interpolationQuality:UIImage

我敢打赌,用于缩放图像的 iOS公共API 足以满足您的需求,因此我建议您使用其中之一。这取决于您使用此图像的目的。是在一个UIImageView吗?

无论如何,请参阅此答案以了解您尝试扩展的方式的几种替代方法,这将不再起作用。

PS这是尽可能避免使用私有 API 的原因之一。即使您的应用程序不适用于 App Store,您也不必担心 Apple 的批准。API 是私有的,意味着它可以而且经常会在未来的 iOS 版本中被更改或删除。

于 2012-07-15T09:12:01.347 回答