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里面对背景进行设置 如图:

435323-416cfd6efb5ac77c.png

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

作者:轻斟浅醉17 链接:https://www.jianshu.com/p/a8dae71f6fca 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值