今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

半透明效果的实现

类似下图这样一个半透明效果的实现:#

image1.png

起因:#

我今天在推酷上面闲逛的时候,看到了这样一篇文章用 Swift 编写面向协议的视图,里面介绍的是一个颤动的效果,分别采用直接实现、category 实现以及 protocol extension 实现,来表现 swift 面向协议的强大,推荐大家仔细看看。

在文章的末尾,附有一个链接,是透明视图控制器及背景遮罩,我点开看了一下,是一个采用 protocol extension 实现的类似图一的半透明的实现;只不过是 swift 的。

然后我仔细回想了一下,类似这种效果的需求在开发中不少,但是每次我实现都是自定义一个 view 然后用动画效果实现,现在想想这样不但繁琐,而且很 low,有木有。

然后想想上面的那个实现,我把它翻译成 OC 的怎么样,能不能使用,OC 里面是没有 protocol extension 的,那我就直接用 category 实现,至少比每次实现都重写方便。

then,here is the result. DimBackground-OC里面很简单,使用的时候只需要导入这两个文件,然后使用即可。
image2.png

但是需要注意的是,要 present 出来的那个界面,这个 Presention 必须设置为 Over Current Context,这个默认的不是这个值,如果不修改的话,会发现最终显示出来的是黑色的背景,看不到背后的界面。
image3.png

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.