2011-11-15 25 views
5

我的問題是「如何改變HUD的顏色地方灰色的」如何改變HUD地方灰色的顏色

  • 在HUD他們是灰色的HUD。
  • 如何更改顏色的色彩搭配客環保色

替換下圖的是HUD和如何改變灰色與其他客環保色

更換提前致謝。 Nimit Parekh。

+0

這是不是一個內置的UIKit控制 - 你的任何機會談論這個? https://github.com/jdg/MBProgressHUD – BoltClock

+0

是的,我使用MBProgressHud,但在這一點上,我想改變背景顏色成圖像,哪個顏色是關閉黑色的地方,我插入綠色。 –

+0

只需轉到執行文件並在init方法中修改顏色:) –

回答

4

我創立了這個問題的解決方案,並將其實施到我的項目中。

In以下方法用於MBProgressHud.m,它們是管理Hud背景顏色的顏色,因此我們更改CGContextSetRGBFillColor參數更改值的顏色。

如果應用此值,我們將獲得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有 「的drawRect:(的CGRect)RECT」 的方法,你會發現灰色在CGContext上功能設置:

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

可以剛剛替補CGContextSetGrayFillColor通過使用其他功能RGB(或其他)的顏色類型:

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

Check complete CGContext reference here:

3

MBProgressHud 0.8版讓我們在其init方法中設置顏色: 默認設置爲零。

在MBProgressHUD.m:

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

不適用於最新的MBProgressHUD代碼 – jjxtra

10

斯威夫特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

這適用於Swift 3上的最新MBProgress – Ahmed

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