2014-10-16 6 views
12

Мое приложение использует UIVisualEffectView, чтобы размыть фон точно так же, как Центр управления. Но я обнаружил, что iPad 2 (и Retina iPad), который может запускать iOS 8, недостаточно мощный, чтобы отображать этот эффект, чтобы он возвращался к серому цвету. Я хотел бы узнать, работает ли приложение, работающее на нем, достаточно мощным, чтобы отображать эффект размытия, и если не я его не применяю, вместо этого я изменю цвет фона на что-то, что выглядит намного лучше, чем это серый цвет. Но я не хочу просто проверять, является ли устройство iPad 2 или iPad 3-го поколения (это также влияет на четвертый?). Есть ли лучший способ определить, будет ли отображаться UIBlurEffect?Проверьте, правильно ли отображается устройство UIVisualEffectView?

+1

Любое повезло с этим? Та же проблема здесь. – soleil

ответ

8

Проверить эту сессию WWDC: http://asciiwwdc.com/2014/sessions/419

Таким образом, и вновь на какие устройства мы не размываются, и что мы только сделать расцветку на IPad 2 и IPad 3-го поколения, мы просто применить оттенок и мы пропускаем шаги размытия.

[...]

На IPad 4-го поколения, IPad Air, IPad Mini, IPad Mini с сетчатке дисплеем, айфонов и IPod Touch, что мы делаем как размытость и расцветку.

Я думаю, вы должны прибегнуть к проверке имени машины:

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

struct utsname systemInfo; 
uname(&systemInfo); 

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

Этот пример неполный. Я также хотел бы увидеть пример того, как установить цвет оттенка не серый. – bluefloyd8

2

Apple, внутренне использует [UIDevice _graphicsQuality] для такого рода проверок. В следующем посте я предлагаю метод, который делает то же самое с использованием только публичного API: https://stackoverflow.com/a/27879304/1914276

+0

FWIW, есть аппаратные устройства, которые не поддерживают UIVisualEffectView, которые не указаны в этой категории: iPhone4,1, iPhone5,1 – troppoli

 Смежные вопросы

  • Нет связанных вопросов^_^