iphone - removeFromSuperview 完成后,会显示一个白色屏幕

标签 iphone ios objective-c xcode uiview

因此,对于我的应用程序,我在当前 View (classesWebView) 之上添加了一个 View (aView) 作为 subview 。所有 aView 都是一个 UIView,上面有一个 UIActivityIndi​​catorView,它应该在下面的 View (classesWebView) 加载适当的网页时进行动画处理。

我可以看到 classesWebView 网页确实出现了(aView 的 alpha 为 .5),但是一旦它一路完成加载,aView 就会被发送 [aView removeFromSuperview] 并且它消失了但是在它消失之后,所有剩下的是一个白色的屏幕。

我已经为另外两个方法做了这个,我不知道为什么,只有这个方法,它拒绝合作。

如有任何建议,我们将不胜感激。该应用程序适用于 iOS 6。

viewDidLoad 方法:

-(void)viewDidLoad
{
    [super viewDidLoad];

    classesWebView.delegate = self;

    [classesWebView addSubview:aView];

    NSURL *class = [NSURL URLWithString:@"mywebistelink"]; 

    NSURLRequest *classRequest = [NSURLRequest requestWithURL:class]; 

    [classesWebView loadRequest:classRequest];   
}

webViewDidStartLoad 方法:

preView 和 switchView 是事件指示器。

- (void)webViewDidStartLoad:(UIWebView *) webview
{
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

    if(aView.superview != nil)
    {
        [preView startAnimating];
    }
    else
    {
        [switchView startAnimating];
    }
}

webViewDidFinishLoad 方法:

- (void)webViewDidFinishLoad:(UIWebView *) webview
{
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    if(aView.superview != nil)
    {
        [aView removeFromSuperview];
        [preView stopAnimating];
        [preView setOpaque:false];
    }
    else
    {
        [switchView stopAnimating];
        [switchView setOpaque:false];
    }
}

[进一步说明:我有 if 语句的原因是因为我想在加载页面时为 classesWebView 提供另一个指示器,但我不希望它出现,除非 aView 消失(因为 aView 已经在指示器上:preView )]

编辑:只是为了证明它只是导致问题的 removeFromSuperview,如果我调用 [aView setAlpha:0.0] 它会消失并且它下面的网页会正确加载。但是我调用 [aView removeFromSuperview] 的第二个网页变成了白屏。 T_T

最佳答案

试试这个:

    NSURL *class=[NSURL URLWithString:[yourwebistelink stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    NSURLRequest *request=[NSURLRequest requestWithURL:class];

   [self.classesWebView loadRequest:request];

关于iphone - removeFromSuperview 完成后,会显示一个白色屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15425280/

相关文章:

iphone - 当可以使用开发配置文件进行分发时,为什么需要临时分发配置文件?

ios - 如果单击 UISearchBar,则更改 UITableView 位置 : [using ModernSearchBar]

ios - Swift 3.0,Alamofire 4.0 调用中的额外参数 'method'

objective-c - Facebook SDK 3.1 iOS : Handle login if user remove app from Facebook Settings

ios - 禁用 WKWebView 中的链接?

iphone - Objective-C 无法将 NSInteger 分配给 NSInteger 变量?

iphone - 我可以使用 Python 编写原生 iPhone 应用程序吗?

iphone - 将 iOS (iPhone) 应用移植到 Mac?

android - 将 Xamarin.Android 项目转换/移植到 Xamarin.iOS

ios - 使用 SIGPIPE 和 SIG_IGN 的信号函数