如何检索UITableViewCell的缩略图

时间:2014-07-05 06:55:13

标签: ios objective-c image tableview

我在UITableViewCell中显示多个图像,如缩略图图像。但我正在努力检索所选UITableViewCell的图像。我必须这样做才能在另一个ViewController中显示图像。我真的很难解决这个问题。

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"MyCell"];
    if (cell==nil)
    {
         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"];

    }

   jsonDict = [jsonArr objectAtIndex:indexPath.row];
    //NSLog(@"imagess%@",jsonDict);
    cell.textLabel.text = [jsonDict objectForKey:@"ImageName"];

    stringg=[NSString stringWithFormat:@"%@",cell.textLabel.text];

    cell.textLabel.textAlignment=NSTextAlignmentCenter;


      NSData *imgData = [NSData dataWithBase64EncodedString:[jsonDict objectForKey:@"ImageData"]];

      imageView.image=[UIImage imageWithData:imgData];
     }
    return cell;

}



-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  {

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    NSLog(@"%@",cell);

    NSString *textname=[NSString stringWithFormat:@"%@",cell.textLabel.text];
    NSLog(@"%@",textname);
 UIImage *image1 =selectedCell.imageView.image;
        age.ageimgae=image1;
}

2 个答案:

答案 0 :(得分:1)

您可以使用所选单元格的索引,而不是获取所选单元格的图像,以便在JSonArray中获取所需的图像(就像您在tableView cellForRowAtIndexPath:中所做的那样) :

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  
{
    jsonDict = [jsonArr objectAtIndex:indexPath.row];
    NSData *imgData = [NSData dataWithBase64EncodedString:[jsonDict objectForKey:@"ImageData"]];
    UIImage *image1 = [UIImage imageWithData:imgData];
}

答案 1 :(得分:0)

didSelectRowAtIndexPath中,您需要识别特定的Indexpath

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  
{
jsonDict = [jsonArr objectAtIndex:indexPath.row];

 NSLog(@"the textr Name==%@",[jsonDict objectForKey:@"ImageName"]);

  UIImage *image1 = [UIImage imageWithData:[NSData dataWithBase64EncodedString:[jsonDict objectForKey:@"ImageData"]]];


NSData *imageData = UIImagePNGRepresentation(image1);
[[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"imageDataKey"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSLog (@"Data Saved");


 }

在这里您可以选择使用NSUSerdefaultsingletonSharedInstance或其他内容将NSData或您的图片传递给其他视图控制器。

在secondviewcontroler.m

  nsdata *imagedata=[[NSUserDefaults standardUserDefaults] objectForKey@"imageDataKey"];

  yourimgaename.image = [UIImage imageWithData:[NSData dataWithBase64EncodedString: imagedata]];