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 で使用できなくなったことです。オンラインでコードを検索していて、非常に古い記事を見つけたのではないでしょうか。UIKit フレームワークを class-dumpでダンプしてUIKit/UIImage.hヘッダーを確認したところ、iOS 5.0 の時点で名前が付けられたプライベート メソッドはありません。_imageScaledToSize:interpolationQuality:UIImage

画像をスケーリングするための iOSパブリックAPI で十分なので、そのうちの 1 つを使用することをお勧めします。この画像を何に使用しているかによって異なります。それはUIImageViewですか?

とにかく、スケールしようとしている方法のいくつかの代替案については、この回答を参照してください。これはもう機能しません。

PSこれは、可能であればプライベート API の使用を避けるべき理由の 1 つです。アプリが App Store 向けでなくても、Apple の承認について心配する必要はありません。API が非公開であることは、iOS の将来のバージョンで変更または削除される可能性があり、多くの場合、その予定であることを意味します。

于 2012-07-15T09:12:01.347 に答える