typedef NS_ENUM(NSInteger, GradientDirection) { GradientDirectionTopToBottom = 0, // 从上往下 渐变 GradientDirectionLeftToRight, // 从左往右 GradientDirectionBottomToTop, // 从下往上 GradientDirectionRightToLeft // 从右往左 }; /* * @param bounds 图片的大小 * @param colors 渐变颜色组 * @param gradientType 渐变方向 * * @return 图片 */ -(UIImage*)gradientImageWithBounds:(CGRect)bounds andColors:(NSArray*)colors andGradientType:(GradientDirection)gradientType{ NSMutableArray *ar = [NSMutableArray array]; for(UIColor *c in colors) { [ar addObject:(id)c.CGColor]; } UIGraphicsBeginImageContextWithOptions(bounds.size, YES, 1); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSaveGState(context); CGColorSpaceRef colorSpace = CGColorGetColorSpace([[colors lastObject] CGColor]); CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef)ar, NULL); CGPoint startPt = CGPointMake(0.0, 0.0); CGPoint endPt = CGPointMake(0.0, 0.0); switch (gradientType) { case GradientDirectionTopToBottom: startPt= CGPointMake(0.0, 0.0); endPt= CGPointMake(0.0, bounds.size.height); break; case GradientDirectionLeftToRight: startPt = CGPointMake(0.0, 0.0); endPt = CGPointMake(bounds.size.width, 0.0); break; case GradientDirectionBottomToTop: startPt = CGPointMake(0.0, bounds.size.height); endPt = CGPointMake(0.0, 0.0); break; case GradientDirectionRightToLeft: startPt = CGPointMake(bounds.size.width, 0.0); endPt = CGPointMake(0, 0.0); break; } CGContextDrawLinearGradient(context, gradient, startPt, endPt, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation); UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); CGGradientRelease(gradient); CGContextRestoreGState(context); CGColorSpaceRelease(colorSpace); UIGraphicsEndImageContext(); return image; } //渐变颜色 UIImageView* baseImg = [[UIImageView alloc] init]; //[baseImg setImage:[UIImage imageNamed:@"Mask"]]; [self.contentView insertSubview:baseImg atIndex:0]; [baseImg mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.contentView); }]; [self.contentView layoutIfNeeded]; CGFloat height = baseImg.frame.size.height; //设置view 背景渐变颜色 UIImage *backImage = [self gradientImageWithBounds:CGRectMake(0, 0, SCREEN_WIDTH, height) andColors:@[UIColorFromRGB(0xC49C5A), UIColorFromRGB(0xDFC289)] andGradientType:GradientDirectionLeftToRight]; UIColor *bgColor = [UIColor colorWithPatternImage:backImage]; [baseImg setBackgroundColor:bgColor];
渐变颜色
猜你喜欢
转载自www.cnblogs.com/kingstudy/p/11570828.html
今日推荐
周排行