테이블 뷰를 이미지로 내보내려고합니다. 그 이미지의 크기를 제어하고 싶습니다.UITableView에서 확장 된 UIImageView
문제는 이미지가으로 테이블 뷰의 프레임 크기가 크다는 것입니다. 내 경우에는 iPhone에서 320x480 (또는 다른 높이)입니다. 나는 그것을 더 크게하고 싶다. 실제로 내 보낸 이미지의 크기를 제어하려면 이 필요합니다. 예를 들어 이미지 320x480을 내보내고 싶지 않습니다. 나는 일종의 규모 요인이 필요합니다. 예를 들어, 2 배 더 많은 픽셀을 가진 2 개의 배 더 큰 이미지를 갖고 싶습니다 ... 나는 그것을 잘 설명하기를 바랍니다. 다음은 이미지 생성에 사용하는 코드입니다.
- (UIImageView*)renderTableViewAsImageView {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView cellForRowAtIndexPath:indexPath].hidden = YES;
self.invoiceExportTitle.textColor = [UIColor blackColor];
CGFloat scaleFactor = 1.0;
CGSize pageSize = CGSizeMake(self.tableView.contentSize.width*scaleFactor, self.tableView.contentSize.height*scaleFactor);
UIGraphicsBeginImageContext(pageSize);
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];
[self.tableView.layer renderInContext:UIGraphicsGetCurrentContext()];
NSInteger rows = [self.tableView numberOfRowsInSection:0];
NSInteger numberOfRowsInView = 4;
for (int i=0; i<rows/numberOfRowsInView; i++) {
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:(i+1)*numberOfRowsInView inSection:0]
atScrollPosition:UITableViewScrollPositionTop
animated:NO];
[self.tableView.layer renderInContext:UIGraphicsGetCurrentContext()];
}
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
UIGraphicsEndImageContext();
[self.tableView cellForRowAtIndexPath:indexPath].hidden = NO;
self.invoiceExportTitle.textColor = [UIColor clearColor];
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:NO];
return imageView;
}
그냥 UIImage 크기를 조정하려면 작동합니까? 예 : http://stackoverflow.com/questions/2658738/the-simplest-way-to-resize-an-uiimage –