2

アプリ用に Facebook のニュース フィードを複製しようとしていますが、表示する必要がある画像があります。画像はさまざまなサイズになるため、奇妙に見えることなくセルに合わせて適切にスケーリングするにはどうすればよいですか?

セルには、画像が設定された UIButton が含まれています。ボタンを押したときにフルサイズの画像を開きたいので、ボタンを使用しています。タップ ジェスチャを使用して UIImageView に変更する方がよい場合は、それも可能ですが、ボタンの方がシンプルだと思いました。

アイデア?

4

4 に答える 4

0

UIImageViewの組み込み関数を使用してすべての画像サイズを処理し、それらと同じサイズ(フレーム)の透明なボタンを配置してみませんか...(* UIButtonを透明にするには、背景色だけをクリアしますとボタンの種類Custom(デフォルトは丸みを帯びた長方形か何かだと思います)

別の注意点として、画像の上に透明なUIButtonを配置せずにUIImageViewのクリックを検出したい場合は、touchesBeganを使用して、配列内のUIImageにタッチがあったかどうかを検出します。

于 2013-02-19T22:39:55.223 に答える
0

Quartz 2D フレームワークで使用[CGAffineTransformMakeScale][1]して、ビューを非常に簡単にスケーリングできます。

#define X_SCALE_FACTOR 2.5
#define Y_SCALE_FACTOR 2.5
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"myimage.png"]];
imageView.transform = CGAffineTransformMakeScale(X_SCALE_FACTOR, Y_SCALE_FACTOR);
于 2013-08-30T04:26:59.257 に答える
0

UITableViewこれらの画像を表示するためにを使用すると仮定します。

これにより、テーブル ビューをスクロールするときに問題が発生します。これは、行が読み込まれるときに画像のサイズが変更され、処理時間がかかりすぎてスクロールがスムーズにならないためです。

これには 2 つの方法があります。

  1. フルサイズの画像を作成するときに適切なサイズの画像を作成し、その方法でディスクに保存します。これらが静的な写真である場合は、画像編集プログラム (Photoshop など) でサムネイルを作成し、それらをフル解像度の写真と一緒に含めます。写真が動的にダウンロード/生成される場合は、フルサイズの画像を保存するときに小さいバージョンを作成する必要があります。これは実際には思ったよりも複雑です。これが必要なルートである場合は、いくつかのコードを提供できます。重要な点は、テーブルビューの行がロードされている間に画像のサイズを変更する必要がないため、時間を大幅に節約できることです。

  2. バックグラウンド スレッドで画像のサイズを変更し、処理が終了したらテーブル ビューの行に追加します。Apple の次のサンプル プロジェクトを含め、これを行うには多数の例があり ます。

可能な限り最高のパフォーマンスは両方を実行することですが、私の経験から、実際に必要なのはどちらか一方だけです。

于 2013-02-19T22:35:40.123 に答える
0
+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {

UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
UIGraphicsEndImageContext();
return newImage;

}

これを使用して、サイズに基づいて画像をスケーリングします。

于 2013-02-19T20:04:18.913 に答える