ios设置父视图半透明而子视图(子控件)不透明

自己能够做到的实现这样的效果,现在大概有五种方法。
看到要实现这样的效果,我们每个人最先想到的应该是调整那个视图的alpha值(0~1)。
但是如果你的这个视图上还有个要正常显示的子控件的话,你这样写是达不到效果的,这样写导致,只要在这个视图上的控件都会显示半透明,要想达到背景半透明而子控件不透明最简单办法是:
一.用一张半透明的图片作为背景。
这样的话就需要你们的UI给你做一个你所需要的图片,(在项目中能不用图片的地方尽量不要用图片)
二 .使用colorWithWhite:alpha 方法
View.backgroundColor = [UIcolor colorWithWhite:0.2f alpha: 0.5];
这个方法是我之前做项目最常用的方法,0.2f 表示灰度,alpha就是你想要调的透明度,这个方法只能设置黑与白之间的半透明。
三.使用colorWithRed:green:blue:alpha:方法
这个方法可以任意设置我们想要的半透明色彩,以前只是给视图设置想要的色彩,以此偶然的机会,竟然发现它可以做任何我们想要的半透明背景而子控件不透明(以前没发现,小失误)
View.backgroundColor = [UIcolor colorWithRed:0.2f green:0.4f blue:0.5f alpha: 0.5];
0.2f 0.4f 0.5f 为相应的色度,如果你们的UI给你们的颜色为242 122 145 时,我们可以这样写:
View.backgroundColor = [UIcolor colorWithRed:242/255 f green:122/ 255 f blue:145 / 255 f alpha: 0.5];
同样达到你们想要的效果!
四.在xib或者storyBoard里面对背景进行设置
如图:

 

通过对背景颜色设置图中的Opacity滑块调整透明度,同样可以达到设置背景半透明而子控件不透明的目的。
五.使用colorWithAlphaComponent:方法
和前面说的几个设置背景色的方法不太一样的是,这是一个实例方法,一个UIColor的实例调用此方法后会返回一个带透明度的UIColor.使用方法如下:
UIColor *color = [UIColor blackColor]; View.backgroundColor = [color colorWithAlphaComponent:0.5];
这个方法也可以实现我们想要的效果。
今后还有什么好的方法我会持续更新!

 



作者:轻斟浅醉17
链接:https://www.jianshu.com/p/a8dae71f6fca
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值