Вам не нужен пользовательский вид.Что-то вроде этого полностью непроверенного кода сделало бы это:
- (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.Добавьте (авто) выпуски, если вы используете ручное управление памятью.