view渐变色,透明度渐变

1 功能描述

  开发中经常遇到这样的需求:view2显示在view1上面,透过view2可以渐渐的看到view1.效果如图1所示:view1是一个imageView,view2是一个普通view。view1与view2完全重叠,view2从下到上由灰色到白色,由不透明到透明。图2为只有view2的效果,图3为只有view1的效果。

2 代码如下

  如果只想颜色渐变,而不需要透明度的渐变,可以将alpha设为1.0。

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     UIImageView *imgView = [[UIImageView alloc] initWithFrame:self.view.bounds];
 4     imgView.image = [UIImage imageNamed:@"sun"];
 5     [self.view addSubview:imgView];
 6
 7     UIView *gradView = [[UIView alloc] initWithFrame:self.view.bounds];
 8     CAGradientLayer *layer = [self getGradientWithFrame:gradView.bounds];
 9     [gradView.layer insertSublayer:layer atIndex:0];
10     [self.view addSubview:gradView];
11 }
12
13 - (CAGradientLayer *)getGradientWithFrame:(CGRect) frame {
14     int colorOneV = 33;
15     int colorTwoV = 33;
16     int colorThreeV = 33;
17     // 设置颜色与不透明度alpha,如果只想渐变而不想透明,可以将alpha设为1.0。
18     UIColor *colorOne = [UIColor colorWithRed:(colorOneV/255.0)  green:(colorOneV/255.0)  blue:(colorOneV/255.0)  alpha:0.0];
19     UIColor *colorTwo = [UIColor colorWithRed:(colorTwoV/255.0)  green:(colorTwoV/255.0)  blue:(colorTwoV/255.0)  alpha:0.5];
20     UIColor *colorThree = [UIColor colorWithRed:(colorThreeV/255.0)  green:(colorThreeV/255.0)  blue:(colorThreeV/255.0)  alpha:1.0];
21     NSArray *colors = [NSArray arrayWithObjects:(id)colorOne.CGColor, colorTwo.CGColor, colorThree.CGColor , nil];
22     NSNumber *stopOne = [NSNumber numberWithFloat:0.0];
23     NSNumber *stopTwo = [NSNumber numberWithFloat:0.5];
24     NSNumber *stopThree = [NSNumber numberWithFloat:1.0];
25     NSArray *locations = [NSArray arrayWithObjects:stopOne, stopTwo, stopThree, nil];
26     // 渐变图层
27     CAGradientLayer *layer = [CAGradientLayer layer];
28     layer.colors = colors;
29     layer.locations = locations;
30     layer.frame = frame;
31     return layer;
32 }
时间: 2024-08-01 13:34:35

view渐变色,透明度渐变的相关文章

code实现透明度渐变和颜色渐变的view

最近用code写了些view上的渐变效果,使得app的UI特效不必全部依赖美工出的图片. 效果如下: 主要用到了Layer上的渐变层,核心代码如下,关于CALaer的使用可参考 //Transparent Gradient Layer - (void) insertTransparentGradient { UIColor *colorOne = [UIColor colorWithRed:(33/255.0) green:(33/255.0) blue:(33/255.0) alpha:0.0

android动画的透明度渐变、旋转动画、缩放动画、评议动画

这是我在学习android的时候做的一个小小的东西可以实现图片的旋转.平移.缩放.透明度的渐变 首先我们要创建一个android的项目 在自己的drawable-mdpi中添加自己的图片 然后在res目录中,创建一个名称是anim(动画)的目录,并且在该目录中实现图片的操作 首先是anim_alpha.xml定义一个实现透明渐变的动画该动画实现的是完全不透明-->完全透明---->完全不透明 <pre name="code" class="html"

给某个view增加颜色渐变图层

//给某个view增加颜色透明度渐变图层 - (void) insertTransparentGradient { NSLog(@"%@",NSStringFromCGRect(self.imgView.bounds)); UIColor *colorOne = [UIColor colorWithRed:(33/255.0)  green:(33/255.0)  blue:(33/255.0)  alpha:0.0]; UIColor *colorTwo = [UIColor col

IOS只改变父视图的的透明度,不会改变子View的透明度

//正在滚动 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{ float offset_Y = scrollView.contentOffset.y; NSLog(@"%f",scrollView.contentOffset.y); UIView *barView = [self.navigationController.view viewWithTag:1000]; if (offset_Y == -20) { //col

js函数封装,使一个obj的透明度渐变,淡入淡出(兼容IE)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

JS实现透明度渐变动画

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS实现透明度渐变动画</title> <style type="text/css"> *{margin:0;padding:0;} #box{width:200px;height:200px;background-color

图片切圆,label文字底部加一条线,自定义view的透明度渐变效果

1.图片头像切成圆[不是半径的话 不是正圆] self.imgvHead.clipsToBounds = YES; self.imgvHead.layer.cornerRadius = self.imgvHead.bounds.size.height/2; self.imgvHead.layer.borderWidth = 0.5f; self.imgvHead.layer.borderColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.

ios 给view添加一个渐变的背景色

CAGradientLayer *gradientLayer = [[CAGradientLayer alloc] init]; gradientLayer.colors = @[(__bridge id)mRGBToColor(0xff8800).CGColor,(__bridge id)mRGBToColor(0xff5100).CGColor]; //位置x,y    自己根据需求进行设置   使其从不同位置进行渐变 gradientLayer.startPoint = CGPointMa

【Unity】透明度渐变

效果图如下: 代码; using System.Collections; using System.Collections.Generic; using UnityEngine; public class TransEffect : MonoBehaviour { public List<GoInfo> GoList; public float varifySpeed = 0.5f; public float aTime = 5f;//每个物体保持出现的时间 public float dTim