【发布时间】:2015-06-30 22:13:58
【问题描述】:
我正在使用这个存储库来绘制渐变,
https://github.com/paiv/AngleGradientLayer/blob/master/AngleGradient/AngleGradientLayer.m
我正在尝试改变渐变开始的角度。
左边的渐变是我目前拥有的,右边是我想要实现的。
http://i.imgur.com/muUPD0U.png
我需要设法编辑代码,通过使图层更大并旋转它,我在右侧得到了我想要的结果,但这意味着在屏幕上绘制更多像素,效率不高。
提前致谢。
AngleGradientLayer *l = (AngleGradientLayer *)self.layer;
l.colors = [NSArray arrayWithObjects:
(id)[UIColor colorWithRed:38.0 / 255.0 green:154.0 / 255.0 blue:151.0 / 255.0 alpha:1].CGColor,
(id)[UIColor colorWithRed:231.0 / 255.0 green:210.0 / 255.0 blue:130.0 / 255.0 alpha:1].CGColor,
(id)[UIColor colorWithRed:195.0 / 255.0 green:85.0 / 255.0 blue:82.0 / 255.0 alpha:1].CGColor,
nil];
NSMutableArray *locations = [[NSMutableArray alloc] initWithCapacity:3];
self.value1 = [NSNumber numberWithFloat:(0.0)];
self.value2 = [NSNumber numberWithFloat:(0.5)];
self.value3 = [NSNumber numberWithFloat:(1.0)];
[locations addObject: self.value1];
[locations addObject: self.value2];
[locations addObject: self.value3];
l.locations = locations;
【问题讨论】:
-
“值”最终对应于渐变中色标的位置(开始、50% 和 100%)。尝试更改它们并查看效果。例如从 0.0、0.5、1.0 更改为 0.0、0.3、0.6。
-
我已经尝试了所有我能想到的方法,如果您参考图像,则不会影响该行。颜色传播效果很好,但这不是我想要改变的。
-
是的,这很奇怪。我在代码中看到的唯一角度是在构建渐变时根据 CGRect 的宽度和高度计算每行/列的 - 它不是您可以直接控制的参数。你试过不开始@ 0.0吗?将第一个位置设为 0.3 并查看您是否将最后一个位置设为 1.3?看起来您可能无法使用负值,但可能大于 1.0 有效?
-
是的,刚刚尝试过,但它并没有改变起点。
标签: ios objective-c gradient layer angle