Мое приложение использует UIVisualEffectView
, чтобы размыть фон точно так же, как Центр управления. Но я обнаружил, что iPad 2 (и Retina iPad), который может запускать iOS 8, недостаточно мощный, чтобы отображать этот эффект, чтобы он возвращался к серому цвету. Я хотел бы узнать, работает ли приложение, работающее на нем, достаточно мощным, чтобы отображать эффект размытия, и если не я его не применяю, вместо этого я изменю цвет фона на что-то, что выглядит намного лучше, чем это серый цвет. Но я не хочу просто проверять, является ли устройство iPad 2 или iPad 3-го поколения (это также влияет на четвертый?). Есть ли лучший способ определить, будет ли отображаться UIBlurEffect
?Проверьте, правильно ли отображается устройство UIVisualEffectView?
ответ
Проверить эту сессию 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];
...
Этот пример неполный. Я также хотел бы увидеть пример того, как установить цвет оттенка не серый. – bluefloyd8
Apple, внутренне использует [UIDevice _graphicsQuality]
для такого рода проверок. В следующем посте я предлагаю метод, который делает то же самое с использованием только публичного API: https://stackoverflow.com/a/27879304/1914276
FWIW, есть аппаратные устройства, которые не поддерживают UIVisualEffectView, которые не указаны в этой категории: iPhone4,1, iPhone5,1 – troppoli
Любое повезло с этим? Та же проблема здесь. – soleil