有时候想让UIViewController背景透明,让我们可以看到下层的UI,直接设置它的背景颜色为clearColor(),还是有黑色的默认背景在那里。下面是解决该问题的例子:

在storyboard建立两个UIViewController,vc1和vc2,在vc1上添加按钮pop,点击弹出vc2,在vc2上添加按钮dismiss点击退出vc2返回vc1

首先在vc2的viewdidload方法里面设置该controller的背景颜色为透明的:

下面是vc1中代码:

注意:如果是push,pop切换控制器,就不能设置背景透明,因为他们是控制器转换,导航堆栈里面出去了就没有了,下层已经没有了UI,只能是默认的黑色,而present不一样,这种切换是直接覆盖在上层,没有控制器进出堆栈的概念,所以允许设置上层背景透明。如上图22行那样是错误的,达不到透明的效果。

下面是运行效果:

这种透明有一个很大的好处,在控制器切换的过程中,控制器里面的动画可以实现和上层控制器的动画天衣无缝的连贯,就像ipad上系统自带的照片app,点击返回,当前的照片会动画汇聚到上一级的坐标处,其实是切换了控制器,用户却感觉还是在同一个UI上,动画衔接毫无破绽。

 

创建一个背景透明的UIViewController的更多相关文章

  1. swift之弹出一个背景半透明的UIViewController

    坑爹的背景半透明,按网上给出oc的方法,动画结束之后,半透明效果消失.通过各种折腾,各种试验,终于搞定了. let viewController=storyboard.instantiateViewC ...

  2. 创建一个背景为蓝色的pygame窗口

    import sys import pygame def creat_screen(): #初始化pygame pygame.init() #设置窗口大小并保存在screen对象中 screen = ...

  3. 【pygame游戏编程】第一篇-----创建一个窗口

    下面我们一起来创建一个背景为蓝色的窗口作为游戏编程的开始: import sys import pygame def creat_screen(): #初始化pygame pygame.init() ...

  4. WPF实现背景透明磨砂,并通过HandyControl组件实现弹出等待框

    前言:上一个版本的Winform需要改成WPF来做界面,第一次接触WPF,在转换过程中遇到的需求就是一个背景透明模糊,一个是类似于 加载中…… 这样的等待窗口,等后台执行完毕后再关掉.在Winform ...

  5. 通过创建一个简单的骰子游戏来探究 Python

    在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏.这次,我将展示如何使用 Python 模块 Pygame 来创建一个图形化游戏.它将需要几篇文章才 ...

  6. Android如何创建背景透明的Dialog

    一:控制Dialog 的背景方法:1.定义一个无背景主题主题<!--去掉背景Dialog--> <style name="NobackDialog" parent ...

  7. 一个关于css3背景透明的例子

    大家都知道使用opacity调节透明度不仅是背景透明了而且选择区域的文字也跟着透明了, 这是我们不想要的效果,于是强大的css3便有了只让背景透明的功能 那就是background:rgba(0,0, ...

  8. Swift开发教程--设置UIViewController的背景透明

    非常easy的一句代码 self.view.backgroundColor = UIColor.clearColor() 由此联想开来,非常多的控件想设置为背景透明都能够用UIColor.clearC ...

  9. css 背景透明文字(内容)不透明三种实现方法

    好久没写博客了.以前还想着最少一个月抽空写几篇.结果没做到O(∩_∩)O~~.好吧.现在努力,继续坚持. 看着以前写的东西,感觉自己在逐渐成长. 先上图: 本文主要记录如上图一样的.文字或内容不透明, ...

随机推荐

  1. 旧的 .NET Core 项目重新打包出现提示版本不对问题

    错误提示 当电脑更新 VS2017 版本后,如果同时有新的 .NET Core SDK 更新,打开旧的项目重新打包,可能会报这样的错误 NETSDK1061: 项目是使用 Microsoft.NETC ...

  2. 自动化运维工具saltstack04 -- 之jinja模板

    jinjia模板 需求:想让saltstack的file模块分发到minion端的配置文件监听minion端的IP和端口,如何用变量实现?看下面!! 1.jinja模板加grains使apache监听 ...

  3. facebook和twitter的截图分享

    记录一下代码,以后自己可以抄..我抄我自己=.= SDK的接入看之前的博客.所以话不多少,直接上代码(记得分享一定要安装原生app(FB和twitter),不然只通过网页分享无法发图片.),初始化都在 ...

  4. spring cloud 入门系列:总结

    从我第一次接触Spring Cloud到现在已经有3个多月了,当时是在博客园里面注册了账号,并且看到很多文章都在谈论微服务,因此我就去了解了下,最终决定开始学习Spring Cloud.我在一款阅读A ...

  5. canvas反向裁剪技巧

    我们都知道在canvas 可以通过clip来实现剪裁功能,其步骤一般是先设置要裁剪的区域(路径),然后通过ctx.clip()的实现裁剪,裁剪之后,后续的绘制只能在裁剪的区域显示效果,比如如下一段代码 ...

  6. Kubernetes网络方案 Flannel和calico

    摘抄某博客 1.   Flannel Flannel是为kubernetes设计的一个非常简洁的多节点三层网络方案,解决不同host上的容器互联问题,原理是为每个host分配一个subnet,容器从此 ...

  7. Doing Homework again:贪心+结构体sort

    Doing Homework again Problem Description Ignatius has just come back school from the 30th ACM/ICPC. ...

  8. 【RL系列】Multi-Armed Bandit笔记补充(二)

    本篇的主题是对Upper Conference Bound(UCB)策略进行一个理论上的解释补充,主要探讨UCB方法的由来与相关公式的推导. UCB是一种动作选择策略,主要用来解决epsilon-gr ...

  9. Swagger本地环境配置

    一.技术背景 随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.先后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远.而前后端的唯一联系便是 API 接口,与此同 ...

  10. resize2fs命令详解

    基础命令学习目录首页 原文链接:http://blog.51cto.com/woyaoxuelinux/1870299   resize2fs:调整ext文件系统的空间大小  搭配逻辑卷lv使用方法: ...