1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 设置导航栏渐变色

设置导航栏渐变色

时间:2021-03-07 04:16:39

相关推荐

设置导航栏渐变色

以下方法可用来设置导航栏上的渐变色。

- (void)setNavigationBarBackgroundColor{

// 创建 UIView用来承载渐变色放置在导航栏上时需要上移20否则状态栏会露出

UIView *myTopView = [[UIViewalloc]initWithFrame:CGRectMake(0, -20,WIDTH ,64)];

//1、window没有设置导航控制器为根视图的情况下

#if 0

[self.view addSubview:myTopView];

//2、设置了导航控制器为根视图。在AppDelegate中设置了

self.window = [[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];

self.window.rootViewController = [[UINavigationControlleralloc]initWithRootViewController:[ViewControllernew]];

self.window.backgroundColor = [UIColor whiteColor];

[self.windowmakeKeyAndVisible];

#else //则视图添加在navigationBar上 或者其他方法设置在navigationBar处

[self.navigationController.navigationBaraddSubview:myTopView];

#endif

// 创建渐变色图层

CAGradientLayer *gradientLayer= [CAGradientLayerlayer];

gradientLayer.frame =CGRectMake(0,0,WIDTH,64);

gradientLayer.colors =@[

(id)[UIColoryellowColor].CGColor,

(id)[UIColorcyanColor].CGColor

];

/* The start and end points of the gradient when drawn into the layer's

* coordinate space. The start point corresponds to the first gradient

* stop, the end point to the last gradient stop. Both points are

* defined in a unit coordinate space that is then mapped to the

* layer's bounds rectangle when drawn. (I.e. [0,0] is the bottom-left

* corner of the layer, [1,1] is the top-right corner.) The default values

* are [.5,0] and [.5,1] respectively. Both are animatable.

*/

// 设置渐变方向(0~1)默认位置为 (0.5,0) 和 (0.5,1)

gradientLayer.startPoint =CGPointMake(0,0);

gradientLayer.endPoint =CGPointMake(0,1);

// 设置渐变色的起始位置和终止位置(颜色的分割点)

/* An optional array of NSNumber objects defining the location of each

* gradient stop as a value in the range [0,1]. The values must be

* monotonically increasing. If a nil array is given, the stops are

* assumed to spread uniformly across the [0,1] range. When rendered,

* the colors are mapped to the output colorspace before being

* interpolated. Defaults to nil. Animatable. */

gradientLayer.locations =@[@(0.15f),@(0.98f)];

//渐变色图层的线宽

gradientLayer.borderWidth =0.0;

// 添加图层

[myTopView.layeraddSublayer:gradientLayer];

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。