Tôi gặp vấn đề mà tôi không thể sửa được. Tôi đang cố gắng để có một màn hình-shot của một UIScrollView (bao gồm cả nội dung màn hình) nhưng khi xem là dài renderInContext không nhận được tất cả các nội dung của xem di chuyển. Kích thước hình ảnh được sản xuất là chính xác nhưng dữ liệu được hiển thị dường như bị thiếu các phần của màn hình để lại không gian màu trắng, nơi các khối đó nên. Các khối bị thiếu là từ nội dung trong một UIWebView, mà tôi tin là được đặt thành "scaleToFit". Nó không xảy ra mọi lúc, nó dường như chỉ xảy ra khi chiều cao của UIWebView nếu khá lớn. Mà làm cho tôi nghĩ là phải làm gì với việc mở rộng UIWebView.Làm thế nào để bạn sửa lỗi "khối" dữ liệu khi chụp ảnh màn hình trên thiết bị iOS?
Nếu tôi điều chỉnh coreLayer.bounds CGRECT bên dưới, tôi nhận được các kết quả khác nhau, đôi khi các khối bị thiếu ở dưới cùng và đôi khi chúng nằm ở giữa hình ảnh.
tôi bắt đầu với mã từ câu trả lời chấp nhận của question này và khi tôi nhận thấy vấn đề cắt, tôi đổi nó như sau:
UIGraphicsBeginImageContext(scrollView.contentSize);
{
CGPoint savedContentOffset = scrollView.contentOffset;
CGRect savedFrame = scrollView.frame;
//hide the scroll bars
[scrollView setShowsHorizontalScrollIndicator:NO];
[scrollView setShowsVerticalScrollIndicator:NO];
scrollView.contentOffset = CGPointZero;
scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);
//adjust layer for cut-off
CALayer *coreLayer = scrollView.layer;
coreLayer.bounds = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);
[coreLayer renderInContext: UIGraphicsGetCurrentContext()];
//[scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
scrollView.contentOffset = savedContentOffset;
scrollView.frame = savedFrame;
//reset the scroll bars to default
[scrollView setShowsHorizontalScrollIndicator:YES];
[scrollView setShowsVerticalScrollIndicator:YES];
}
UIGraphicsEndImageContext();
Việc điều chỉnh cắt đã giúp (cố định nó với một số quan điểm) nhưng nó vẫn bị cắt khi UIScrollView khá dài. Tôi đã làm việc này một thời gian và dường như không thể tìm thấy một sửa chữa. Bạn có đề nghị nào không? Có ai từng gặp vấn đề này không?
Vui lòng trợ giúp!
Chỉ là một suy nghĩ nhưng bạn đã xem xét tạm thời thay đổi scrollView.frame.size thành scrollView.contentSize? Điều này sẽ yêu cầu khung nhìn bảng để nạp tất cả các ô vào, khi chúng được lắp vào khung (bảng xem cache nội dung bên ngoài khung của chúng, không phải bên ngoài màn hình). – Kalle