当在原有视图上需要弹出一个新的视图,并且突出显示时,我们可以新建一个和屏幕大小相同的UIView,并且将UIView的背景颜色设置为灰色,需要突出显示的控件背景设为白色(或其他醒目颜色)。同时,将UIView设置具有透明度,需要突出显示的控件不透明。这样一来就可以达到,半透明悬浮显示控件的酷炫效果。
实际写代码过程中会发现,如果直接修改UIView的alpha,效果并不理想。
self.view.alpha = 0.5;
self.view.backgroundColor = [[UIColor grayColor];
这样做确实可以修改UIView的透明度,但是顶层视图的alpha会影响到底层所有视图的alpha值,所以如果继续尝试添加控件,会发现新添加的控件也是半透明的(即使我们并没有人为的如此设置)。
有一个简单的解决办法,在设置顶层视图透明度时候,不直接修改view的alpha值,而是通过修改颜色达到类似的目的
self.view.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:0.5];
这样生成的顶部UIView,不仅也是灰色半透明,其底层视图依然可以保持不透明状态。