2011-11-15 4 views
5

Ma question est « Comment changer la couleur du HUD en place de couleur grise »Comment changer la couleur du lieu hud de couleur grise

  • En hud leur est une couleur grise pour le hud.
  • Comment changer la couleur de cette couleur remplacer par la couleur verte au large

dans l'image ci-dessous leur est hud et comment changer la couleur grise remplacer par une autre de couleur verte

Merci d'avance. Nimit Parekh.

+0

Ce n'est pas un contrôle intégré UIKit - êtes-vous par hasard parler de ce? https://github.com/jdg/MBProgressHUD – BoltClock

+0

oui, je suis utiliser MBProgressHud mais en ce sens que je veux changer la couleur de fond en image dont la couleur est noire en place en insérant hors de la couleur verte. –

+0

Il suffit d'aller au fichier d'implémentation et de modifier la couleur dans la méthode init :) –

Répondre

4

J'ai découvert la solution de ce problème et mis en œuvre dans mon projet.

Dans la méthode suivante est l'utilisation dans le MBProgressHud.m leur est de gérer la couleur de la couleur d'arrière-plan Hud donc la couleur de changement pour que nous changeons la valeur de l'argument CGContextSetRGBFillColor changement.

Si vous appliquez cette valeur, nous obtenons la couleur verte du hud.

- (void)fillRoundedRect:(CGRect)rect inContext:(CGContextRef)context { 
    float radius = 10.0f; 

    CGContextBeginPath(context); 
    CGContextSetRGBFillColor(context, 17.0/255, 64.0/255, 42.0/255, 0.8); 
    CGContextMoveToPoint(context, CGRectGetMinX(rect) + radius, CGRectGetMinY(rect)); 
    CGContextAddArc(context, CGRectGetMaxX(rect) - radius, CGRectGetMinY(rect) + radius, radius, 3 * M_PI/2, 0, 0); 
    CGContextAddArc(context, CGRectGetMaxX(rect) - radius, CGRectGetMaxY(rect) - radius, radius, 0, M_PI/2, 0); 
    CGContextAddArc(context, CGRectGetMinX(rect) + radius, CGRectGetMaxY(rect) - radius, radius, M_PI/2, M_PI, 0); 
    CGContextAddArc(context, CGRectGetMinX(rect) + radius, CGRectGetMinY(rect) + radius, radius, M_PI, 3 * M_PI/2, 0); 
    CGContextClosePath(context); 
    CGContextFillPath(context); 
} 
4

MBProgressHUD.m a un "drawRect: (CGRect) rect" méthode où vous trouverez la couleur grise en fonction CGContext fixé:

CGContextSetGrayFillColor (context, 0.0f, self.opacity); 

Vous pouvez simplement remplacer CGContextSetGrayFillColor par une autre fonction qui utilise RGB (ou autre) Type de couleur:

CGContextSetRGBFillColor (context, 0/255.0f, 132/255.0f, 200/255.0f, 0.9f); 

Check complete CGContext reference here:

3

La version 0.8 de MBProgressHud vous permet de définir la couleur dans sa méthode init: Elle est définie à zéro par défaut.

dans MBProgressHUD.m:

- (id)initWithFrame:(CGRect)frame { 
. 
. 
. 
self.color = [UIColor greenColor]; 
12
MBProgressHUD *HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view]; 
HUD.color = [UIColor purpleColor]; 
... 
+1

Ne fonctionne pas avec le dernier code MBProgressHUD – jjxtra

10

Swift 3:

let hud:MBProgressHUD = MBProgressHUD.showAdded(to: self.view, animated: true) 

hud.bezelView.color = UIColor.green // Your backgroundcolor 

hud.bezelView.style = .solidColor // you should change the bezelview style to solid color. 
+0

Cela fonctionne avec la dernière MBProgress sur Swift 3 – Ahmed

1
_mHud.bezelView.color = [UIColor blackColor]; 
_mHud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor; 
_mHud.contentColor = [UIColor whiteColor]; 
Questions connexes