Tôi đang cố gắng triển khai ứng dụng chia sẻ với facebook. tôi đã sử dụng mã này để có những ảnh chụp màn hình:Tại sao ảnh chụp màn hình được tạo theo chương trình của tôi trông rất tệ trên iOS 7?
CGSize imageSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height);
UIGraphicsBeginImageContext(imageSize);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Nó hoạt động tuyệt vời trên iOS 6, nhưng trong iOS 7 hình ảnh trông rất xấu. Tôi đã sử dụng câu trả lời này: iOS: what's the fastest, most performant way to make a screenshot programmatically? để cố khắc phục và điều đó đã giúp ích, ảnh chụp màn hình có vẻ không tốt. Màn hình có màu khác và một số đối tượng (như nhãn) không hiển thị trên hình ảnh được chụp. Bất kỳ trợ giúp nào?
---- Cập nhật ----
Tôi đã giải quyết được hầu hết các đối tượng, bằng cách thay đổi chúng để giữ lại thay vì yếu. Vấn đề chính của tôi vẫn là tableview của tôi, được hiển thị như một khối màu trắng lớn (Nó được cho là minh bạch, với các nhãn có chữ màu trắng, vì vậy tất cả chúng ta thấy là các ô màu trắng). Tôi đã cố gắng để xác định nền bảng như clearcolor, không giúp ..
---- Cập nhật cuối ---
Có câu trả lời tuyệt vời ở đây là không thực sự liên quan đến vấn đề của tôi .. Tôi muốn làm nó hoạt động trên thiết bị chạy với iOS7 nhưng không sử dụng SDK iOS7, vì phải mất nhiều công sức để chuyển SDK dự án vào thời điểm này, khi dự án gần xong.
Dù sao, tôi đã thêm sự yên mã mà cuối cùng giải quyết vấn đề của tôi:
Sự thay đổi này chỉ đơn giản là giải quyết vấn đề:
UIGraphicsBeginImageContextWithOptions(imageSize, NO , 0.0f);
thay vì:
UIGraphicsBeginImageContext(imageSize);
Cảm ơn cho câu trả lời tốt đẹp. Ứng dụng của tôi hiện không tương thích với iOS 7 SDK. Tôi không có thời gian để thực hiện tất cả các thay đổi cần thiết và thay thế tất cả các lớp học không được chấp nhận. Tôi đang chạy ứng dụng của mình trên iOS7 với iOS 6 SDK. Vấn đề duy nhất tôi gặp trong tất cả ứng dụng là ảnh chụp màn hình này. Bạn có ý tưởng tôi nên làm gì không? – Yossi
Tôi nghĩ rằng, 1 vấn đề với mã hiện tại của bạn có thể là không lấy quy mô (là thiết bị Retina?) Vào tài khoản. bạn có thể sử dụng 'UIGraphicsBeginImageContextWithOptions (imageSize, NO, 0.0)' (tham số cuối cùng là tỷ lệ của ảnh, thiết lập 0.0 đảm bảo chức năng chọn tỷ lệ màn hình của thiết bị chính) – Vinzzz
Nhận xét của bạn gần nhất với giải pháp mà tôi đã sử dụng :) – Yossi