给定一个 iOS 上的任意 UIView,有没有办法使用 Core Graphics(想到 CAGradientLayer)对其应用“前景透明”渐变?
我不能使用标准的 CAGradientLayer,因为背景比 UIColor 更复杂。我也无法覆盖 PNG,因为背景会随着我的 subview 沿其父垂直 ScrollView 滚动而改变(见图)。
我有一个不优雅的回退:让我的 uiview 剪辑它的 subview ,并在滚动父 ScrollView 时移动背景的预渲染渐变 png。
最佳答案
这是一个令人尴尬的简单修复:应用 CAGradientLayer 作为我的 subview 的 mask 。
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = _fileTypeScrollView.bounds;
gradientLayer.colors = [NSArray arrayWithObjects:(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor, nil];
gradientLayer.startPoint = CGPointMake(0.8f, 1.0f);
gradientLayer.endPoint = CGPointMake(1.0f, 1.0f);
_fileTypeScrollView.layer.mask = gradientLayer;
感谢Cocoanetics为我指明了正确的方向!
关于iphone - UIView透明渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38268327/