这是什么类型的活动动画视图?

时间:2012-01-28 05:15:51

标签: iphone objective-c ios uiview ios5

在下图中,使用什么类型的视图来创建“启用提醒”活动指示器?它是带有标签和标准UIActivityIndi​​cator的自定义视图吗?内置的UIKit类?

activity indicator

4 个答案:

答案 0 :(得分:4)

正如其他人所说,这是一种自定义视图。幸运的是,一个善良的第三方创建了一个很好的开源实现:

https://github.com/jdg/MBProgressHUD

答案 1 :(得分:2)

是的,它是带有标签和标准UIActivityIndi​​cator的视图。

答案 2 :(得分:1)

您不需要自定义视图。像这样完全未经测试的代码会做到这一点:

- (UIView *)busyOverlayViewWithText:(NSString *)text {
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(80, 120, 160, 160)];
    view.opaque = NO;
    view.clipsToBounds = YES;
    view.backgroundColor = [UIColor colorWithWhite:0 alpha:.2];
    view.layer.cornerRadius = 8;

    UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge];
    spinner.center = CGPointMake(80, 30);
    [spinner startAnimating];
    [view addSubview:spinner];

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 60, 160, 100)];
    label.text = text;
    label.textColor = UIColor.whiteColor;
    label.backgroundColor = UIColor.clearColor;
    label.textAlignment = UITextAlignmentCenter;
    label.numberOfLines = 0;
    label.lineBreakMode = UILineBreakModeWordWrap;
    [view addSubview:label];

    return view;
}

这是使用ARC。如果使用手动内存管理,则添加(自动)版本。

答案 3 :(得分:0)

这不是一个单独的内置类。相反,它是由以下组成:

  • 自定义透明视图,可能是图像。
  • 标准活动指标。
  • 标准标签。

如果您想创建类似的东西,那么您可以轻松地将它们全部放在一个类中。