我的问题是“如何改变HUD的颜色代替灰色”
在下面的图像中它们是hud以及如何更改灰色替换为另一个绿色
提前致谢。 Nimit Parekh。
答案 0 :(得分:12)
MBProgressHUD *HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
HUD.color = [UIColor purpleColor];
...
答案 1 :(得分: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.
答案 2 :(得分:4)
我找到了这个问题的解决方案,并在我的项目中实现。
在下面的方法用于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);
}
答案 3 :(得分:4)
MBProgressHUD.m有一个" drawRect:(CGRect)rect"您可以在CGContext函数中找到灰色颜色的方法:
CGContextSetGrayFillColor (context, 0.0f, self.opacity);
你可以用另一个使用RGB(或其他)颜色类型的函数替换CGContextSetGrayFillColor:
CGContextSetRGBFillColor (context, 0/255.0f, 132/255.0f, 200/255.0f, 0.9f);
答案 4 :(得分:3)
MBProgressHud的0.8版让你在它的init方法中设置颜色: 默认设置为nil。
在MBProgressHUD.m中:
- (id)initWithFrame:(CGRect)frame {
.
.
.
self.color = [UIColor greenColor];
答案 5 :(得分:2)
_mHud.bezelView.color = [UIColor blackColor];
_mHud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
_mHud.contentColor = [UIColor whiteColor];