【发布时间】:2012-01-28 05:15:51
【问题描述】:
在下图中,使用什么类型的视图来创建“开启提醒”活动指示器?它是带有标签和标准 UIActivityIndicator 的自定义视图吗?一个内置的 UIKit 类?
【问题讨论】:
标签: iphone objective-c ios uiview ios5
在下图中,使用什么类型的视图来创建“开启提醒”活动指示器?它是带有标签和标准 UIActivityIndicator 的自定义视图吗?一个内置的 UIKit 类?
【问题讨论】:
标签: iphone objective-c ios uiview ios5
正如其他人所说,这是一个自定义视图。幸运的是,一个善良的第三方已经创建了一个很好的开源实现:
【讨论】:
是的,它是带有标签和标准 UIActivityIndicator 的视图。
【讨论】:
您不需要自定义视图。像这样完全未经测试的代码可以做到这一点:
- (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。如果您使用手动内存管理,请添加(自动)释放。
【讨论】:
UIView 的子类。
这不是一个单一的内置类。相反,它是由以下组成的:
如果您想创建类似的东西,那么您可以轻松地将它们全部放在一个类中。
【讨论】: