Objective c 活动指示器周围的圆形框,带“标记”;“装载”;正文

Objective c 活动指示器周围的圆形框,带“标记”;“装载”;正文,objective-c,ios,uiviewcontroller,uiactivityindicatorview,Objective C,Ios,Uiviewcontroller,Uiactivityindicatorview,我知道如何用一个简单的正方形背景制作活动指示器,但根本没有填充,我也不知道如何让“加载”这个词显示成这样 有人知道这是如何实现的吗?我在网上查过了,似乎什么也找不到。谢谢大家! 如果要使用某些自定义组件,可以使用。这是解决这个问题的方法 如果你想自己做,你可以检查他们的源代码,看看他们是如何实现的,你可以对你的代码采用类似的方法。基本上,这将涉及子类化UIView并在drawRect方法中绘制活动指示器和标签。黑色背景是UIImageView。因此,在要显示此内容的viewControlle

我知道如何用一个简单的正方形背景制作活动指示器,但根本没有填充,我也不知道如何让“加载”这个词显示成这样


有人知道这是如何实现的吗?我在网上查过了,似乎什么也找不到。谢谢大家!

如果要使用某些自定义组件,可以使用。这是解决这个问题的方法


如果你想自己做,你可以检查他们的源代码,看看他们是如何实现的,你可以对你的代码采用类似的方法。基本上,这将涉及子类化
UIView
并在
drawRect
方法中绘制活动指示器和标签。

黑色背景是
UIImageView
。因此,在要显示此内容的viewController中:

[self.view UIImageView]; //Set proper frame for the UIImageView so that it comes in the centre.
在该图像视图上,添加一个活动指示器和一个标签,上面写着“正在加载”

我想这会给你你想要的

}

}

  - (void)drawRect:(CGRect)rect {

CGContextRef context = UIGraphicsGetCurrentContext();

switch (self.maskType) {

    case SVProgressHUDMaskTypeBlack: {
        [[UIColor colorWithWhite:0 alpha:0.5] set];
        CGContextFillRect(context, self.bounds);
        break;
    }

    case SVProgressHUDMaskTypeGradient: {

        size_t          locationsCount = 2;
        CGFloat         locations[2]   = {0.0f, 1.0f};
        CGFloat         colors[8]      = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.75f};
        CGColorSpaceRef colorSpace     = CGColorSpaceCreateDeviceRGB();
        CGGradientRef   gradient       = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount);
        CGColorSpaceRelease(colorSpace);

        CGPoint center = CGPointMake(self.bounds.size.width / 2, self.bounds.size.height    / 2);
        float   radius = MIN(self.bounds.size.width, self.bounds.size.height) ;
        CGContextDrawRadialGradient(context, gradient, center, 0, center, radius, kCGGradientDrawsAfterEndLocation);
        CGGradientRelease(gradient);

        break;
      }
   }
 }
+ (void)showWithStatus:(NSString *)status {
[SVProgressHUD showWithStatus:status   networkIndicator:SVProgressHUDShowNetworkIndicator];
}

  + (void)showInView:(UIView *)view status:(NSString *)string {

 [SVProgressHUD showWithStatus:string maskType:SVProgressHUDMaskTypeNone    networkIndicator:SVProgressHUDShowNetworkIndicator];
  - (void)showWithStatus:(NSString *)string maskType:(SVProgressHUDMaskType)hudMaskType   networkIndicator:(BOOL)show {

self.fadeOutTimer = nil;

if (self.showNetworkIndicator)
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

self.showNetworkIndicator = show;

if (self.showNetworkIndicator)
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

self.imageView.hidden = YES;
self.maskType         = hudMaskType;

[self setStatus:string];
[self.spinnerView startAnimating];

if (self.maskType != SVProgressHUDMaskTypeNone) {
    self.overlayWindow.userInteractionEnabled = YES;
} else {
    self.overlayWindow.userInteractionEnabled = NO;
}

[self.overlayWindow makeKeyAndVisible];
[self positionHUD:nil];

if (self.alpha != 1) {
    [self registerNotifications];
    self.hudView.transform = CGAffineTransformScale(self.hudView.transform, 1.3, 1.3);

    [UIView animateWithDuration:0.15
                          delay:0
                        options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationCurveEaseOut | UIViewAnimationOptionBeginFromCurrentState
                     animations:^{
                         self.hudView.transform = CGAffineTransformScale(self.hudView.transform, 1 / 1.3, 1 / 1.3);
                         self.alpha             = 1;
                     }
                     completion:NULL];
}

[self setNeedsDisplay];