Tôi đã sử dụng phương pháp này để chuyển đổi UIView
thành UIImage
. ví dụ: màn hình chụp của một cái nhìn -Chụp UIView dưới dạng UIImage
@interface UIView(Extended)
- (UIImage *) imageByRenderingView;
@end
@implementation UIView(Extended)
- (UIImage *)imageByRenderingView
{
UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resultingImage;
}
@end
Để sử dụng nó, tôi làm điều này -
UIImage *currImage = [self.view imageByRenderingView];
này cung cấp cho các đại diện hình ảnh của toàn bộ UIView
. Bây giờ tôi muốn 2 hình ảnh, một là nửa trên của UIView
và một là nửa dưới. Làm thế nào để làm điều đó?
Lưu ý rằng (từ kinh nghiệm của tôi) 'renderInContext:' có thể khá tốn kém. Tôi đang làm nó trong một 'cellForRowAtIndexPath:' (không có, ngay bây giờ, một tùy chọn khác) và điều này rõ ràng có nghĩa là tụt hậu. –