美文网首页
iOS 半透明的presentVC & 半透明的webV

iOS 半透明的presentVC & 半透明的webV

作者: 草原烈鹰 | 来源:发表于2017-01-13 15:37 被阅读221次

有很多情况需要模态出来的viewController是半透明的,还有一些情况是要求webView是半透明的,下面将总结的经验展示:

  1. ViewController中:

#import "ViewController.h"
#import "SecondViewController.h"

@interface ViewController ()<UIWebViewDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 120, 100, 50)];
    [button setTitle:@"Button" forState:(UIControlStateNormal)];
    [button addTarget:self action:@selector(clickBtn) forControlEvents:(UIControlEventTouchUpInside)];
    button.backgroundColor = [UIColor grayColor];
    [self.view addSubview:button];
    
    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(100, 200, 200, 300)];
    webView.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:0.5];
//    webView.backgroundColor = [UIColor orangeColor];
//    [webView setScalesPageToFit:YES];
     [webView setOpaque:NO];
    webView.delegate = self;
    
    [self.view addSubview:webView];
    
//    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://b.bigaka.com/html/cky/ckyhelp.html"]];
//    //http://b.bigaka.com/html/cky/ckyhelp.html
//    //http://www.baidu.com
//    [webView loadRequest:request];
    
    //2.加载本地文件资源
    NSString *pathStr = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
    NSURL *url = [NSURL fileURLWithPath:pathStr];
     NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
    //3.读入一个HTML,直接写入一个HTML代码
    //NSString *htmlPath = [[[NSBundle mainBundle]bundlePath]stringByAppendingString:@"webapp/loadar.html"];
    //NSString *htmlString = [NSString stringWithContentsOfURL:htmlPath encoding:NSUTF8StringEncoding error:NULL];
    //[webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:htmlPath]];
    
}

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

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error
{
    
}

- (void)clickBtn
{
    
    SecondViewController *secondVC = [[SecondViewController alloc] init];

    //present的ViewController设置半透明
    secondVC.modalPresentationStyle = UIModalPresentationOverCurrentContext;
    secondVC.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.4];
    
    
    [self presentViewController:secondVC animated:YES completion:nil];
    
    
}

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

2. 模态出来的VC

#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
//    self.view.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:0.4];
//    [self.view setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.868f]];
//    self.view.backgroundColor = [UIColor whiteColor];
//    self.view.backgroundColor = [UIColor clearColor];
//    [self.view setOpaque:NO];
    
     
    
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 100, 100, 50)];
    [button setTitle:@"Button" forState:(UIControlStateNormal)];
    button.backgroundColor = [UIColor orangeColor];
    [button addTarget:self action:@selector(clickBtn) forControlEvents:(UIControlEventTouchUpInside)];
    [self.view addSubview:button];
}

- (void)clickBtn
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

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

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

3. 添加本地的h5
w02.png

代码:


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
    html{background:rgba(255,255,255,0.5)}
    body{background:rgba(255,255,255,0.5)}
    </style>
</head>
<body>
<div>Œ“ «≤‚ ‘Œƒº˛</div>
</body>
</html>

相关文章

网友评论

      本文标题:iOS 半透明的presentVC & 半透明的webV

      本文链接:https://www.haomeiwen.com/subject/hnjsbttx.html