2014-04-07 3 views
0

I Tap 된 tableviewcell과 동일한 CGContext를 사용하여 이미지를 얻는 방법. 나는 도청 한 세포의 틀을 가지고있다. CGContext의 많은 예제를 보았습니다. CGContext는 크기를 입력으로 사용하고 이미지를 그 크기로 변환합니다.iOS SDK의 셀을 누를 때 tableviewcell에서 이미지 (CGContext 사용)를 얻는 방법

하지만 동일한 프레임이있는 것처럼 tableviewcell의 이미지를 가져오고 싶습니다. 아무도 나에게 이것을 제안 할 수있는 방법을 제안 할 수 있습니까?

답변

1

아마도 셀을 두드린 후 적절한 두 위치에이 두 로직을 묶어야합니다. 현재 셀의 CGRect을 얻는 방법은 - (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath;입니다.

  1. 클릭하면 UITableViewCellCGRect을 찾습니다.
  2. 몇 개조하면 되겠 어해야 할 수도 있습니다,

이이 문제를 해결해야

-(UIImage *) screenshot:(CGRect)cellRect onCell:(UITableViewCell)cell 
{ 
    UIGraphicsBeginImageContext(cellRect.size); 

    CGContextRef context=UIGraphicsGetCurrentContext(); 
    [cell.layer renderInContext:context]; 

    UIImage *image=UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return image; 
} 
1 단계의 CGRect에서 CGSzie를 가져옵니다.

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

UIImageView *imageV = [[UIImageView alloc]initWithImage:[self screenshot:[tableView rectForRowAtIndexPath:indexPath] onCell:[tableView cellForRowAtIndexPath:indexPath]]]; 
imageV.frame = CGRectMake(0, 75, self.tableView.frame.size.width,100); 

UIViewController *viewController = [[UIViewController alloc]init]; 
[viewController.view addSubview:imageV]; 

UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:viewController]; 
[self presentViewController:nav animated:YES completion:^{ 
}]; 

}

화면 : 여기서

가 사용하다 선택된 1 행

enter image description here

새로운 뷰 컨트롤러에 이미지보기 부하

enter image description here

+0

잘 작동합니다 ... !!!! –

+0

여기에서 컨텍스트는 두 번째 셀을 탭한 경우에도 첫 번째 셀의 이미지 만 가져옵니다. –

+0

@MonishKumar 정말로 이것이 문제입니까? –

관련 문제