我想導出一個tableview作爲圖像。我想要控制該圖像的大小。從UITableView縮放UIImageView
問題是,圖像是作爲 大的tableview的框架,這在我的情況iPhone是320x480(或 其他一些高度)。我希望它變得更大。其實我想在導出的圖像的大小上有控制 。例如,我不想導出圖像 320x480。我需要某種比例因子。例如,我想用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 –