2011-11-15 27 views
5

La mia domanda è "Come cambiare il colore del HUD al posto di colore grigio"Come modificare il colore di HUD luogo di colore grigio

  • In hud loro è un colore grigio per l'HUD.
  • Come modificare il colore di quel colore sostituirli con off colore verde

immagine di seguito nella loro è hud e come cambiare il colore grigio sostituirlo con un altro fuori colore verde

Grazie in anticipo. Nimit Parekh.

+0

questo non è un built-in di controllo UIKit - si sono per caso parlando di Questo? https://github.com/jdg/MBProgressHUD – BoltClock

+0

sì, io uso MBProgressHud ma in questo voglio cambiare il colore di sfondo in un'immagine il cui colore è nero al posto di inserire il colore verde. –

+0

Basta andare al file di implementazione e modificare il colore nel metodo init :) –

risposta

4

Ho trovato la soluzione di questo problema e implementato nel mio progetto.

Nel seguente metodo viene utilizzato nel MBProgressHud.m il loro è un gestire il colore del colore di sfondo Hud in modo che il colore di cambiamento per quello cambiamo il valore dell'argomento di CGContextSetRGBFillColor.

Se si applica questo valore, otteniamo il colore verde del 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 ha un "drawRect: (CGRect) rect" metodo in cui si trova il colore grigio impostato in funzione di CGContext:

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

Si può solo sostituire CGContextSetGrayFillColor da un'altra funzione che utilizza RGB (o altro) colore tipo:

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

Check complete CGContext reference here:

3

Versione 0.8 di MBProgressHud impostiamo il colore nel suo metodo init: È impostato su zero per impostazione predefinita.

in MBProgressHUD.m:

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

Non funziona con l'ultimo codice 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

Funziona con l'ultimo MBProgress su Swift 3 – Ahmed

1
_mHud.bezelView.color = [UIColor blackColor]; 
_mHud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor; 
_mHud.contentColor = [UIColor whiteColor]; 
Problemi correlati