UIView上的渐变蒙版

问题描述:

我有一个UIView,并希望它的底部部分淡出为0不透明度。UIView上的渐变蒙版

这可以做到UIView(CALayer),以影响整个UIView及其内容?

+0

对于那些与渐变遮罩斗争的人来说,如果应用于“UIStackView”,它将不起作用。 –

是的,你可以通过设置CAGradientLayer为您的视图的图层蒙版:

#import <QuartzCore/QuartzCore.h> 

... 

CAGradientLayer *maskLayer = [CAGradientLayer layer]; 

maskLayer.frame = view.bounds; 
maskLayer.colors = @[(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor]; 
maskLayer.startPoint = CGPointMake(0.5, 0); 
maskLayer.endPoint = CGPointMake(0.5, 1.0); 

view.layer.mask = maskLayer; 

附:您还需要将QuartzCore.framework链接到您的应用程序才能使其工作。

+0

我知道这是年龄较大,但获取cgcolor然后再将它们连接回指针的处理是什么? 'colors'属性表示它是一个UIColors数组。 –

+0

从文档 - **颜色**中抽象 - 定义每个渐变色的颜色的CGColorRef对象数组。要将它们存储在NSArray中,我们将它们转换为id。坦率地说,我认为在使用ARC时我们需要桥接模式,但代码编译正确,因为它现在是 – Vladimir

+0

谢谢,它工作! – Deeper