2014-10-16 22 views
12

Ứng dụng của tôi sử dụng UIVisualEffectView để làm mờ nền giống như Trung tâm điều khiển. Nhưng tôi phát hiện ra iPad 2 (và iPad Retina) có thể chạy iOS 8 không đủ mạnh để hiển thị hiệu ứng đó để nó trở lại màu xám. Tôi muốn có thể phát hiện xem thiết bị đang chạy có đủ mạnh để hiển thị hiệu ứng mờ hay không và nếu không tôi sẽ không áp dụng hiệu ứng đó, thay vào đó tôi sẽ thay đổi màu nền thành một thứ trông đẹp hơn nhiều màu xám đó. Nhưng tôi không muốn chỉ kiểm tra xem thiết bị có phải là iPad 2 hay iPad thế hệ thứ 3 (nó có ảnh hưởng đến thứ 4 không?). Có cách nào tốt hơn để phát hiện xem UIBlurEffect có xuất hiện như mong đợi không?Phát hiện xem thiết bị có hiển thị đúng UIVisualEffectView không?

+1

Bất kỳ may mắn nào với điều này? Cùng một vấn đề ở đây. – soleil

Trả lời

8

Kiểm tra phiên WWDC này: http://asciiwwdc.com/2014/sessions/419

Vì vậy, và nhắc lại về những gì các thiết bị chúng tôi không mờ và rằng chúng tôi chỉ thực hiện pha màu trên iPad 2 và iPad thế hệ thứ 3, chúng tôi chỉ áp dụng các sắc thái và chúng tôi bỏ qua các bước mờ.

[...]

Trên iPad thế hệ thứ 4, iPad Air, iPad Mini, iPad Mini với màn hình võng mạc, iPhone và iPod touch chúng tôi làm cả hai mờ và pha màu.

Tôi đoán bạn phải nghỉ mát để kiểm tra tên máy:

#import <sys/utsname.h> 
... 

struct utsname systemInfo; 
uname(&systemInfo); 

NSString *deviceName = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; 
... 
+0

Ví dụ này chưa hoàn chỉnh. Tôi cũng muốn xem ví dụ về cách đặt tông màu không thành màu xám. – bluefloyd8

2

của Apple trong nội bộ sử dụng [UIDevice _graphicsQuality] cho các loại séc. Trong bài viết sau tôi đề xuất một phương pháp thực hiện giống như vậy chỉ sử dụng API công khai: https://stackoverflow.com/a/27879304/1914276

+0

FWIW, có các thiết bị phần cứng không hỗ trợ UIVisualEffectView không được liệt kê trong danh mục đó: iPhone4,1, iPhone5,1 – troppoli

Các vấn đề liên quan