Trong mã của tôi, tôi đang cố hiển thị UIWebView
khi trang đang tải, sau đó, khi xong, hãy chụp ảnh từ chế độ xem web vào bộ nhớ cache và hiển thị sau (vì vậy tôi không phải tải lại và hiển thị trang web).Làm cách nào để biết khi nào một UIWebView đã vẽ xong một ngữ cảnh?
Tôi có một cái gì đó dọc theo dòng:
CGContextRef context = CGBitmapContextCreate(…);
[[webView layer] renderInContext:context];
CGImageRef imageRef = CGBitmapContextCreateImage(context);
UIImage *image = [UIImage imageWithCGImage:imageRef];
Vấn đề tôi đang chạy vào đó là, do UIWebView
's ốp lát, đôi khi chỉ một nửa số trang được trả lại với bối cảnh của thời gian Tôi chụp hình.
Có cách nào để phát hiện hoặc chặn trên chuỗi hiển thị nền của UIWebView
để tôi có thể lấy hình ảnh chỉ sau khi tất cả kết xuất đã hoàn tất?
UPDATE: Nó có thể là điều kiện chủ đề chủng tộc là một cá trích đỏ (đó là chưa rõ ràng từ các tài liệu, ở mức nào, cho dù lớp tùy chỉnh UIWebView
's hoặc một CATiledLayer
trong khối chung về chủ đề nền tảng của nó) .
Thay vào đó, đây có thể là vấn đề vô hiệu hóa (mặc dù có một số loại gọi đến setNeedsDisplay
trên cả hai lớp UIWebView
và lớp của nó). Thay đổi các giới hạn của UIWebView
trước khi hiển thị nó dường như đã loại bỏ vấn đề "không vẽ toàn bộ điều".
Tôi vẫn gặp phải sự cố khi một vài ô được vẽ ở quy mô cũ, nhưng gọi số renderInContext:
hai lần dường như đã giảm nhẹ đến mức đủ.