0

テーブルビューに画像を追加したい。UITableViewCell オブジェクトを 1 つ作成します。.h ファイル内

@interface MainView1 : UITableViewCell{

IBOutlet UILabel *cellText;

IBOutlet UIImageView *productImg;

IBOutlet UILabel *cellText1;

}

- (void)LabelText:(NSString *)_text;

- (void)LabelText1:(NSString *)_text;

- (void)ProductImage:(NSString *)_text;

 @end

および .m ファイル

- (void)LabelText:(NSString *)_text;{

  cellText.text = _text;
}

- (void)LabelText1:(NSString *)_text;{

     cellText1.text=_text;
 }


  - (void)ProductImage:(NSString *)_text;{

productImg.image = [UIImage imageNamed:_text];
  }

そしてメインファイルで

//ページにはテーブルが含まれています

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  MainView1 *cell = (MainView1 *)[tableView dequeueReusableCellWithIdentifier: MyIdentifier];
if(cell == nil) {
    [[NSBundle mainBundle] loadNibNamed:@"MainView1" owner:self options:nil];
    cell = tableCell1;  
    [cell LabelText:[arryList objectAtIndex:indexPath.row]];
[cell ProductImage:[imgNameArray objectAtIndex:indexPath.row]];

    [cell LabelText1:[yesArray objectAtIndex:indexPath.row]];

}

画像配列はこのようなデータベースから来ています

 NSData   *imgdata=[[NSData alloc]initWithBytes:sqlite3_column_blob(cmp_sqlstmt,0)       length:sqlite3_column_bytes(cmp_sqlstmt,0)];

 [imgNameArray addObject:dataImage];

問題は、画像のみが表示されていないことですエラー表示が認識されていないセレクターがインスタンス0x4e53940に送信されました'

それを解決する方法よろしくKL BAIJU

4

1 に答える 1

5

データベースから、 の形式で画像を取得しますNSData。それをデータソース配列に保存します。

しかし、その後、あなたはそれを次のように渡しますNSString

[cell ProductImage:[imgNameArray objectAtIndex:indexPath.row]];

どこ

- (void)ProductImage:(NSString *)_text;{

productImg.image = [UIImage imageNamed:_text];

}

NSData基本的に、メソッドパラメーターをタイプに変更する必要があります

- (void)ProductImage:(NSData *) imageData{

    productImg.image = [UIImage imageNamed:_text];

}

しかし、これでもうまくいきません。[UIImage imageNamed:]メソッドは、メイン バンドルから名前付きのイメージを取得しようとするためです。しかし、あなたの場合、あなたが持っているデータからの画像が必要です。したがって、最終的な方法は次のようになります。

- (void)ProductImage:(NSData *) imageData{

        productImg.image = [UIImage imageWithData: imageData];

}

また、ヘッダー ファイルのメソッド宣言を次のように変更することを忘れないでください。

- (void)ProductImage:(NSData *) imageData;

于 2012-04-28T11:07:51.063 に答える