0

テーブルに画像を追加する方法は 2 つありますが、どちらが最も効率的で、より良い方法はありますか? どちらの方法も、「レイヤー オブジェクト」を使用してボタンの上に配置されます。

また、シミュレーターでテーブルのスクロールが遅いことに気付きましたが、この遅いスクロールは実際の電話でも発生する可能性がありますか? 理由がわかる唯一の理由は、おそらくボタンを関連付けていないためですが、メモリまたは各セルへの描画に関連する他の何かである可能性があります。画像はURLから来ているのでできませんよね?

各ボタンを表のセルに追加する 2 つの方法を次に示します。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

[button setTitle:@"image.png" forState:UIControlStateNormal];

[[button titleLabel] setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13]];

[button setTitleColor:[UIColor clearColor] forState:UIControlStateNormal];

[button setBackgroundColor:[UIColor blackColor]];

UIImage *btn = [UIImage imageWithData:"png image from url"];

UIImage* newImage2 = [btn scaleToSize:CGSizeMake(280, 209.0)];

CGSize newSize = CGSizeMake(280, 209.0);

UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);

[newImage2 drawInRect:CGRectMake(0, 0, (newSize.width), (newSize.height))];

UIImage *newImage4 = UIGraphicsGetImageFromCurrentImageContext();   

UIGraphicsEndImageContext();

[button setImage:newImage4 forState:UIControlStateNormal];

button.frame = CGRectMake(20.0, 50.0, 280, 255.0);

//////////////////////////////////////// 以下の 2 番目の方法:

UIButton *button2 = [UIButton buttonWithType:UIButtonTypeCustom];

[button2 setTitle:@"photo.png" forState:UIControlStateNormal];

[[button2 titleLabel] setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13]];

[button2 setTitleColor:[UIColor clearColor] forState:UIControlStateNormal];

[button2 setBackgroundColor:[UIColor blackColor]];

UIImage *btnImage = [UIImage imageWithData:"png image from url"];

UIImageView *imageView2 = [[UIImageView alloc] initWithImage:btnImage];

imageView2.frame = CGRectMake(0, 0, 280, 209);

button2.frame = CGRectMake(20.0, 50.0, 280, 255.0);

[button2 addSubview:imageView2];
4

1 に答える 1

1

ここでは、一部の画像がリモートサーバーから送信されています。リモートサーバーから画像を読み込むには、遅延読み込みを使用する必要があります。画像を非同期でダウンロードし、必要に応じて画像を読み込みます。これを実行し、キャッシュメカニズムを備えたSDWebImageライブラリを使用することもできます。このライブラリの使用は非常に簡単で簡単です。お気に入り:

 [cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
                      placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
于 2012-07-01T17:20:41.130 に答える