【问题标题】:Translucent , setStatusBarStyle, UIWebView半透明,setStatusBarStyle,UIWebView
【发布时间】:2014-03-16 16:55:06
【问题描述】:

我正在开发 UIWebView,我想要的是 webView 不要过度渲染视图。

所以问题来了。我设置了 UIWebView ,状态栏覆盖在内容上。 我该如何处理?我的代码和我做 UIImage 视图的时候一样,但是当时有导航栏,而且效果很好。

我也做了 setFrame:CGRectMake(0, 20).... 但也不起作用。为什么 [setFrame];方法不行?请有任何想法。

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIWebView *webView;
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleDefault];
    [self.webView setFrame:CGRectMake(0,0, self.view.frame.size.width, self.view.frame.size.height)];

    NSURL *myURL = [NSURL URLWithString:@"http://www.amazon.com"];
    NSURLRequest *myURLReq = [NSURLRequest requestWithURL:myURL];
    [self.webView loadRequest:myURLReq];






}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


-(void)webViewDidStartLoad:(UIWebView *)webView{

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}

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

}


@end

更新:我关闭了自动布局并更改了 setFrame:CGRectMake(0, 20) 现在它们没有被覆盖。但我想知道为什么我们需要设置这个?如果我将状态栏设置为 translucent ,这是有道理的。但是我把它设置为默认值,应该是在(0,20)的状态栏正下方开始绘制屏幕。

【问题讨论】:

  • 我已经尝试过您的代码,但没有问题 - 在我的故事板中,webview 没有与导航栏重叠,如您的问题所示 - 关闭您的自动布局 - 然后尝试这些行 [[UIApplication sharedApplication] setStatusBarStyle : UIStatusBarStyleDefault]; [self.webView setFrame:CGRectMake(0,0, self.view.frame.size.width, self.view.frame.size.height)];没有效果
  • @bgavya kothari:感谢您的帮助,但我的意思是我没有放置导航栏。我很想知道为什么没有导航栏就不能工作,以及如何解决这个问题。
  • 那你用什么代替导航栏???
  • 我只是在测试功能,所以这里没有必要添加导航栏。(不要滚动视图。)这里只有一个 mvc。我没有添加任何东西。
  • 那么你放在上面的44px/64px

标签: ios objective-c ios7 uiwebview uiimageview


【解决方案1】:

试试这个

- (void)viewDidLoad
{
     [super viewDidLoad];

  // Do any additional setup after loading the view, typically from a nib.


    [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleDefault];

    [self.webView setFrame:CGRectMake(0.0, 20.0, self.view.frame.size.width, self.view.frame.size.height)];

     NSURL *myURL = [NSURL URLWithString:@"http://www.amazon.com"];

     NSURLRequest *myURLReq = [NSURLRequest requestWithURL:myURL];
     [self.webView loadRequest:myURLReq];

}

您的自动调整大小蒙版应如下所示。

最终输出:

【讨论】:

    【解决方案2】:

    在您的 viewDidLoadMethod 中添加以下代码:

     if( [[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
        {
            self.edgesForExtendedLayout = UIRectEdgeNone;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2011-08-31
      • 2014-11-05
      • 2019-09-09
      • 1970-01-01
      • 2021-11-01
      • 2014-08-07
      相关资源
      最近更新 更多