Ouais, il y a un bug avec barTintColor sur QLPreviewController pour iOS si vous le montrer par presentViewController: animated:
Voici ma solution, utilisez setBackgroundImage: avec l'image 1x1 au lieu de setBarTintColor:
Et imageWithColor: est une méthode dans ma catégorie personnalisée de UIImage qui renvoie l'image 1x1 redimensionnable de la couleur désirée (couleur rouge dans l'exemple ci-dessus):
+ (UIImage *)imageWithColor:(UIColor *)color {
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
const CGFloat alpha = CGColorGetAlpha(color.CGColor);
const BOOL opaque = alpha == 1;
UIGraphicsBeginImageContextWithOptions(rect.size, opaque, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
Je suggère également d'envelopper ce avec iOS contrôle de version comme:
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"11.0")) {
[[UINavigationBar appearance...
setBackgroundImage:[UIImage imageWithColor:...]
forBarMetrics:UIBarMetricsDefault];
}
Où SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO
est de:
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
Veuillez ne pas marquer le code comme ceci: \ "code \', ajoutez plutôt quatre espaces devant votre code. Veuillez également expliquer ce qui ne fonctionne pas. Est-ce que votre système explose en exécutant un tel code? – SteveFest