我想在tableview上添加图片。 我创建了一个UITableViewCell对象。在.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'
如何解决它 问候 K L BAIJU
答案 0 :(得分: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;