效果如下:
ViewController.h
1#import<UIKit/UIKit.h>23@interfaceViewController : UIViewController {4@PRivate5UILabel *lblMessage;6CGFloat colorRed;7CGFloat colorGreen;8CGFloat colorBlue;9}1011@end
ViewController.m
1#import"ViewController.h"23@interfaceViewController ()4- (void)redDidPush;5- (void)greenDidPush;6- (void)blueDidPush;7- (void)changeLabelColor:(CGFloat*)pColor;8@end910@implementationViewController1112#pragmamark - Start Implementation For Methods13- (void)viewDidLoad {14[super viewDidLoad];15colorRed =0.0;16colorGreen =0.0;17colorBlue =0.0;18CGPoint newPoint =self.view.center;1920//追加Label标签21lblMessage = [[UILabel alloc] initWithFrame:CGRectMake(0,0,320,200)];22lblMessage.textAlignment =NSTextAlignmentCenter;23lblMessage.center =newPoint;24lblMessage.textColor =[UIColor whiteColor];25lblMessage.text =@"染上新的颜色吧...";26lblMessage.backgroundColor = [[UIColor alloc] initWithRed:colorRed green:colorGreen blue:colorBlue alpha:1.0];27//设置Label标签的圆角28//默认是四个圆角29//lblMessage.layer.cornerRadius = 20.0;30//lblMessage.layer.masksToBounds = YES;3132/*33typedef NS_OPTIONS(NSUInteger, UIRectCorner) {34UIRectCornerTopLeft = 1 << 0,35UIRectCornerTopRight = 1 << 1,36UIRectCornerBottomLeft = 1 << 2,37UIRectCornerBottomRight = 1 << 3,38UIRectCornerAllCorners = ~0UL39};40*/41//这里使用Layer实现两个圆角;左上角和右上角42UIRectCorner rectCorner = UIRectCornerTopLeft |UIRectCornerTopRight;43UIBezierPath *path =[UIBezierPath bezierPathWithRoundedRect:lblMessage.bounds44byRoundingCorners:rectCorner45cornerRadii:CGSizeMake(20.0,20.0)];46CAShapeLayer *shapeLayer =[CAShapeLayer layer];47shapeLayer.path =path.CGPath;48lblMessage.layer.mask =shapeLayer;49[self.view addSubview:lblMessage];5051//追加红色按钮52UIButton *btnRed =[UIButton buttonWithType:UIButtonTypeRoundedRect];53btnRed.frame = CGRectMake(0,0,50,40);54newPoint.x -= (btnRed.frame.size.width +10);55newPoint.y = self.view.frame.size.height -70;56btnRed.center =newPoint;57btnRed.backgroundColor =[UIColor grayColor];58[btnRed setTitle:@"红"forState:UIControlStateNormal];59[btnRed setTitleColor:[UIColor redColor] forState:UIControlStateNormal];60[btnRed addTarget:self action:@selector(redDidPush) forControlEvents:UIControlEventTouchUpInside];61[self.view addSubview:btnRed];6263//追加绿色按钮64UIButton *btnGreen =[UIButton buttonWithType:UIButtonTypeRoundedRect];65btnGreen.frame =btnRed.frame;66newPoint.x += (btnRed.frame.size.width +5);67btnGreen.center =newPoint;68btnGreen.backgroundColor =[UIColor grayColor];69[btnGreen setTitle:@"绿"forState:UIControlStateNormal];70[btnGreen setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];71[btnGreen addTarget:self action:@selector(greenDidPush) forControlEvents:UIControlEventTouchUpInside];72[self.view addSubview:btnGreen];7374//追加蓝色按钮75UIButton *btnBlue =[UIButton buttonWithType:UIButtonTypeRoundedRect];76btnBlue.frame =btnRed.frame;77newPoint.x += (btnRed.frame.size.width +5);78btnBlue.center =newPoint;79btnBlue.backgroundColor =[UIColor grayColor];80[btnBlue setTitle:@"蓝"forState:UIControlStateNormal];81[btnBlue setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];82[btnBlue addTarget:self action:@selector(blueDidPush) forControlEvents:UIControlEventTouchUpInside];83[self.view addSubview:btnBlue];84}8586- (void)didReceiveMemoryWarning {87[super didReceiveMemoryWarning];88//Dispose of any resources that can be recreated.89}9091#pragmamark - Private Methods92- (void)redDidPush {93[self changeLabelColor:&colorRed];94}9596- (void)greenDidPush {97[self changeLabelColor:&colorGreen];98}99100- (void)blueDidPush {101[self changeLabelColor:&colorBlue];102}103104- (void)changeLabelColor:(CGFloat*)pColor {105if(pColor) {106if(*pColor >0.99) {107*pColor =0.0;108}else{109*pColor +=0.1;110}111lblMessage.backgroundColor = [[UIColor alloc] initWithRed:colorRed green:colorGreen blue:colorBlue alpha:1.0];112}113}114115@end