给定iOS上的任意UIView,是否可以使用Core Graphics(想到了CAGradientLayer)对其应用“前景透明”渐变?

我不能使用标准的CAGradientLayer,因为背景比UIColor更复杂。我也无法覆盖PNG,因为随着 subview 沿其父垂直滚动 View 滚动时背景会发生变化(请参见图)。

我有一个非优雅的后备:让我的uiview剪辑其 subview ,并在滚动父滚动 View 时移动背景的预渲染渐变png。

最佳答案

这是一个非常尴尬的解决方法:将CAGradientLayer用作我的 subview 的蒙版。

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/10852405/

10-09 12:27