Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIActivityIndicator显示在键盘下方的视图_Ios_Objective C_Uialertview_Uiactivityindicatorview - Fatal编程技术网

Ios UIActivityIndicator显示在键盘下方的视图

Ios UIActivityIndicator显示在键盘下方的视图,ios,objective-c,uialertview,uiactivityindicatorview,Ios,Objective C,Uialertview,Uiactivityindicatorview,在静态库(lib.a)中,我在序列图像板中有一个NavigationController,点击按钮后启动: [mainWindow.rootViewController presentViewController:newController animated:NO completion:Nil]; 在这个newController中,我有一个UITextField,我在viewDidLoad上设置成为第一响应者,还有另一个按钮,当点击该按钮时,我想显示一个UIAlertView,按下“Ok”后

在静态库(lib.a)中,我在序列图像板中有一个
NavigationController
,点击按钮后启动:

[mainWindow.rootViewController presentViewController:newController animated:NO completion:Nil];
在这个
newController
中,我有一个
UITextField
,我在
viewDidLoad
上设置
成为第一响应者
,还有另一个按钮,当点击该按钮时,我想显示一个
UIAlertView
,按下“Ok”后,它应该在所有内容的顶部显示一个
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....
问题是
ui活动指示灯视图
没有显示在键盘顶部

有什么想法吗?

试着在后面添加

[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;
}

在显示指示器之前,将
UIActivityIndicatorView
设置为窗口最前面的子视图


添加代码:
[main window bringsubview-tofront:spinner];
[spinner-startAnimating]之前

谢谢您的快速回复。我已经尝试过了,但仍显示在键盘下方。我尝试过编辑后的注释,但仍显示在键盘下方。我编辑了我的说明,因为我忘了提及所有这些都是在静态库中完成的。谢谢您的建议!我尝试过,但仍显示在键盘下方键盘:(