Bli*_*ios 6 iphone objective-c uilabel ios
我想在UILabel上添加渐变效果,使它看起来像:

请注意左右角的渐变效果.我不知道如何做到这一点.任何帮助或建议将不胜感激.
编辑: - 我尝试使用此代码 -
UIColor *endColor = [UIColor colorWithRed:20/255.0 green:157/255.0 blue:189/255.0 alpha:1.0];
NSArray *gradientColors = [NSArray arrayWithObjects:(id)[[UIColor clearColor] CGColor],(id)[endColor CGColor], nil];
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = gradientColors;
[gradientLayer setStartPoint:CGPointMake(0.0, 0.5)];
[gradientLayer setEndPoint:CGPointMake(1.0, 0.5)];
[self.rightLabel.layer insertSublayer: gradientLayer atIndex:0];
Run Code Online (Sandbox Code Playgroud)
但我变得喜欢:

注意:
添加渐变作为标签的背景,但我想要像第一张图像中那样的渐变效果(请参阅右下角的标签)
您的代码是正确的,但您错过了设置将被CAGradientLayer..
请注意,您需要使用带有 alpha 值的颜色,以避免出现黑色.. 例如:
\n\n[UIColor colorWithRed:0 green:0.5 blue:1 alpha:0]
或者
\n\n[[UIColor YourColor] colorWithAlphaComponent:0]代替[UIColor clearColor]
并检查这个示例代码,我已经尝试过这个并且对我有用,希望这也对你有用..快乐编码..:)
\n\nCAGradientLayer *rightGradient = [CAGradientLayer layer];\nrightGradient.frame = CGRectMake(0, 0, YourLabel.frame.size.width, YourLabel.size.height);\nrightGradient.colors = [NSArray arrayWithObjects:(id)[UIColor colorWithRed:0 green:0.5 blue:1 alpha:0].CGColor, (id)[UIColor colorWithRed:0 green:0.5 blue:1 alpha:1].CGColor, nil];\n[rightGradient setStartPoint:CGPointMake(0.8, 0.9)];\n[rightGradient setEndPoint:CGPointMake(1.0, 0.9)];\n[YourLabel.layer addSublayer:rightGradient];\nRun Code Online (Sandbox Code Playgroud)\n\n哦最后一件事,如果你打算向左侧添加渐变,只需更改
\n\n[rightGradient setStartPoint:CGPointMake(0.8, 0.9)];\n[rightGradient setEndPoint:CGPointMake(1.0, 0.9)];\nRun Code Online (Sandbox Code Playgroud)\n\n到
\n\n[leftGradient setStartPoint:CGPointMake(0.2, 0.1)];\n[leftGradient setEndPoint:CGPointMake(0.0, 0.1)];\nRun Code Online (Sandbox Code Playgroud)\n\n这里是示例输出:
\n\n
按要求更新
\n\n第 1 行:简单分配
\n\nCAGradientLayer *rightGradient = [CAGradientLayer layer];\nRun Code Online (Sandbox Code Playgroud)\n\n第2行:CAGradientLayers帧
rightGradient.frame = CGRectMake(0, 0, YourLabel.frame.size.width, YourLabel.size.height);\nRun Code Online (Sandbox Code Playgroud)\n\n这非常重要,这设置了框架(与 UIView 等相同)CAGradientLayer,意义origin.x也origin.y被考虑在内。
第 3 行:.colors
rightGradient.colors = [NSArray arrayWithObjects:(id)[UIColor colorWithRed:0 green:0.5 blue:1 alpha:0].CGColor, (id)[UIColor colorWithRed:0 green:0.5 blue:1 alpha:1].CGColor, nil];\nRun Code Online (Sandbox Code Playgroud)\n\n当您像我的示例中那样分配颜色数组时,颜色会相应地排列.. (color.alpha == 0) 位于索引 0 中,(color.alpha == 1) 位于索引 1 中,并将显示在左侧正确的..
\n\n第 4 行:setStartPoint
[rightGradient setStartPoint:CGPointMake(0.8, 0.9)];\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n起点对应于渐变的第一个停止点。该点在单位坐标空间中定义,然后在绘制时映射到图层 xe2x80x99s 边界矩形。
\n\n默认值为 (0.5,0.0)。
\n
第 5 行:setEndPoint
[rightGradient setEndPoint:CGPointMake(1.0, 0.9)];\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n终点对应于渐变的最后一站。该点在单位坐标空间中定义,然后在绘制时映射到图层 xe2x80x99s 边界矩形。
\n\n默认值为 (0.5,1.0)。
\n
[YourLabel.layer addSublayer:rightGradient];\nRun Code Online (Sandbox Code Playgroud)\n\n这一切都在这里讨论过.. CAGradientLayer
\n\n关于您要求的颜色,您可以使用这个:UIColor Code Generator
\n\n但是如果你想使用十六进制字符串作为颜色,#ace123你可以使用这个方法:
+ (UIColor *)colorWithHexString:(NSString *)hexString withOpacity:(CGFloat)opacity\n{\n unsigned rgbValue = 0;\n\n NSScanner *scanner;\n\n scanner = [NSScanner scannerWithString:hexString];\n\n scanner.scanLocation = ([hexString hasPrefix:@"#"]) ? 1 : 0;\n\n [scanner scanHexInt:&rgbValue];\n\n UIColor *color = [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16)/255.0 green:((rgbValue & 0xFF00) >> 8)/255.0 blue:(rgbValue & 0xFF)/255.0 alpha:opacity];\n\n return color;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n^_^ 干杯!
\n| 归档时间: |
|
| 查看次数: |
3643 次 |
| 最近记录: |