Dri*_*met 4 iphone objective-c ios
我正在CAGradientLayer为我UIView的每一个背景做一个,但我有一个小问题.渐变似乎不够平滑.颜色之间的过渡将呈现.你可以在这张照片中看到它.

这就是我在UIView的初始化程序中实现此渐变的方法.
CAGradientLayer *layer = [CAGradientLayer layer];
layer.colors = [NSArray arrayWithObjects:
(id)[[UIColor darkKinepolisColor] CGColor],
(id)[[UIColor lightKinepolisColor] CGColor],
(id)[[UIColor lightKinepolisColor] CGColor],
(id)[[UIColor darkKinepolisColor] CGColor],
nil];
layer.locations = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0],
[NSNumber numberWithFloat:0.4],
[NSNumber numberWithFloat:0.6],
[NSNumber numberWithFloat:1],
nil];
layer.startPoint = CGPointMake(0, 0);
layer.frame = self.layer.bounds;
layer.endPoint = CGPointMake(1, 1);
layer.contentsGravity = kCAGravityResize;
[self.layer addSublayer:layer];
Run Code Online (Sandbox Code Playgroud)
优秀的开发人员可以帮我解决这个问题吗?谢谢!
这不就是 8 位颜色值的结果吗?颜色之间的步距尽可能小。
即,如果您想要 rgb(100,100,100) 和 rgb(109,109,109) 之间的渐变,它只能在 10 个像素的渐变宽度上完全平滑。如果您尝试在 100 像素的宽度上绘制此渐变,您将得到 10 个 10 像素宽的颜色块,并且看起来非常块状。还会发生什么?
您可以通过抖动和添加噪音使其看起来更平滑,但没有内置功能可以实现此目的。
因此,要么选择相距较远的颜色,在较短的距离上绘制渐变,要么在 Photoshop 中制作图形并应用噪点和抖动以使其看起来更平滑。
| 归档时间: |
|
| 查看次数: |
6504 次 |
| 最近记录: |