1

if ステートメントを使用する以外に、さまざまな行の tableviewcell に画像を動的にロードするより良い方法はありますか? 細胞がたくさんある場合はどうなりますか。ということは、if ステートメントをたくさん書かなければならないということですか? また、コア データから画像を取得し、それをテーブルビュー セルの画像として使用する方法はありますか? 前もって感謝します。

- (UIImage *)imageForMagnitude:(CGFloat)magnitude { 
if (magnitude >= 5.0) {
    return [UIImage imageNamed:@"5.0.png"];
}
if (magnitude >= 4.0) {
    return [UIImage imageNamed:@"4.0.png"];
}
if (magnitude >= 3.0) {
    return [UIImage imageNamed:@"3.0.png"];
}
if (magnitude >= 2.0) {
    return [UIImage imageNamed:@"2.0.png"];
}
return nil;

}

編集:マグニチュードに関するものではない場合はどうなりますか?たとえば、製品のリストや iPhone のアプリ ストアなどです。どのようにして、テーブル上のさまざまなアプリ用にさまざまな画像を生成できたのでしょうか? 彼らはテーブルを使用していますか、それともこれを行うためのより良い方法はありますか?

4

2 に答える 2

1

うーん、switch ステートメントかもしれません。または、大きさを四捨五入してから..

[NSString stringWithFormat:@"%d.0.png", newMagnitude];
于 2011-05-12T06:42:36.157 に答える
0

floorfからの関数を使用して大きさを切り捨てます。<math.h>

次に、MINおよびMAXマクロを使用して、実際の値が 5 を超えたり 2 を下回ったりしないようにします。

int realMagnitude = (int) MAX(MIN(floorf(magnitude), 5.0f), 2.0f);
return [UIImage imageNamed:[NSString stringWithFormat:@"%d.0.png", realMagnitude]];

更新:これがあなたが探しているものだと思います:で-tableView:cellForRowAtIndexPath:、提供されたを使用しNSIndexPathて関連する画像を取得します:

cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", indexPath.row]];
于 2011-05-12T06:44:13.017 に答える