在一个静态库(lib.a)中,我在一个故事板中有一个NavigationController
,我在点击按钮后启动:
[mainWindow.rootViewController presentViewController:newController animated:NO completion:Nil];
在newController
内我有一个UITextField
,我在becomeFirstResponder
设置viewDidLoad
,另一个按钮在点按时我要显示UIAlertView
之后按“确定”应该在所有内容(包括键盘)上显示UIActivityIndicatorView
。
用于显示UIActivityIndicatorView
的代码如下
UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
spinner.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleBottomMargin);
spinner.center = CGPointMake(CGRectGetWidth(mainWindow.bounds)/2, CGRectGetHeight(mainWindow.bounds)/2);
spinner.frame = mainWindow.bounds;
spinner.backgroundColor = [UIColor darkGrayColor];
spinner.alpha = 0.7f;
[mainWindow addSubview:spinner];
每当用户点击按钮时,我执行以下操作:
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Confirmation"
message:@"Are you sure?"
delegate:self
cancelButtonTitle:@"No"
otherButtonTitles:@"Yes", nil];
[message show];
当点击时,我有一个简单的方法:
//Initializing spinner
[spinner startAnimating];
//Execute NSURL Connection....
问题是UIActivityIndicatorView
没有显示在键盘顶部。
有什么想法吗?
答案 0 :(得分:0)
尝试在
之后添加[mainWindow addSubview:spinner];
类似
[mainWindow bringSubviewToFront:spinner];
尝试将此视图用作UIActivityIndicatorView的超级视图
- (UIView *)keyboardView {
NSArray *windows = [[UIApplicatio sharedApplication] windows];
for (UIWindow *window in [windows reverseObjectEnumerator]) {
for (UIView *view in [window subviews]) {
if (!strcmp(object_getClassName(view), "UIKeyboard")) {
return view;
}
}
}
return nil;
}
答案 1 :(得分:0)
在显示指标之前,将UIActivityIndicatorView
设置为窗口的最前面的子视图
在[mainWindow bringSubviewToFront:spinner];
[spinner startAnimating];