iOS学习笔记05 可以看到上一层内容的半透明的界面

下面我先把跟学习笔记04跟05综合的demo发出来,要是大家有什么不明白的可以直接下载下来,看懂demo了之后就不需要再看我下面写的东西了。可看到上层内容半透明demo
这个demo把五六个界面用push和present混用之后怎么回到根视图,并且中间present的界面是这样的半透明的界面,很浅显易懂的。有啥不懂直接私信我评论问我都可以,大家一起学习。
首先先把需求说明,如图

iOS学习笔记05 可以看到上一层内容的半透明的界面_第1张图片

看界面就大概知道,需要有一个半透明的界面,可以看到上一层控制器上的内容,然后在此界面上还需要展示响应的数据等等。
我想高手的话应该会很容易的用第三方控件或者是自己写一个弹出view来解决,但是对于新手的我来说实在是有点难啊,这个界面我研究了很久还是没搞出来,最后决定还是要推出一个界面来实现这个功能。
那么假设上一层的界面是AViewController,银行卡列表这个界面是BViewController。
在A弹出B的方法中。

-(void)clickToBVC
{
  NSLog(@"要跳转B界面了");
  BViewController *vc = [[BViewController alloc]init];
  vc.modalPresentationStyle =   UIModalPresentationOverCurrentContext;
  self.definesPresentationContext = YES;
  [self presentViewController:vc animated:YES completion:^{
    vc.view.superview.backgroundColor = [UIColor clearColor];
  }];
}

之后在B的ViewDidLoad方法中将B视图的背景色设置成半透明就行了。

  self.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3];

这就简单的完成了半透明的界面,并且可以看到上一层视图的内容,这里需要注意的是那个modalPresentationStyle。在这里暂时就不赘述了,如果UIModalPresentationOverCurrentContext没有效果的话,可以换成UIModalPresentationFullScreen试一试,这里具体的我还没有深入研究,因为这两个我在两个不同的地方用的时候管用,换成别的就不管用了。所以这个之后我会找机会进行深入研究后再写一篇来说的。
那么半透明的视图完成了,那么别的东西就容易多了,界面上添加view,然后添加列表之类的,就随意发挥了。

你可能感兴趣的:(iOS学习笔记05 可以看到上一层内容的半透明的界面)