UIColor的简单介绍

来源:互联网 发布:淘宝账户异常自助开通 编辑:程序博客网 时间:2024/05/19 01:33

     两个参数 一个是不透明度一个是灰度值 返回的是一个颜色对象

  两个值都是CGFloat类型大于11 小于00

  [[UIColor alloc]initWithWhite:0.33 alpha:1]方法一个道理

  self.view.backgroundColor = [UIColor colorWithWhite:0.33 alpha:1];


    用HSB和不透明度来返回一个颜色对象

  色相(H,hue):在0~360°的标准色轮上,色相是按位置度量的。在通常的使用中,色相是由颜色名称标识的,比如红、绿或橙色。黑色和白色无色相

  饱和度(S,saturation):表示色彩的纯度,为0时为灰色。白、黑和其他灰色色彩都没有饱和度的。在最大饱和度时,每一色相具有最纯的色光。取值范围0100%

  亮度(B,brightnessV,value):是色彩的明亮度。为0时即为黑色。最大亮度是色彩最鲜明的状态。取值范围0100%

  HSB模式中SB呈现的数值越高,饱和度明度越高,页面色彩强烈艳丽,对视觉刺激是迅速的,醒目的效果,但不易于长时间的观看。以上两种颜色的S数值接近,是强烈的状态。H显示的度是代表在色轮表里某个角度所呈现的色相状态,相对于饱和度(S)和亮度(B)来说,意义不大。

  参数都是CGFloat类型大于11 小于00

  和这个方法一个道理[[UIColor alloc]initWithHue:0.5 saturation:0.5 brightness:0.5 alpha:1]

  self.view.backgroundColor = [UIColor colorWithHue:0.5 saturation:0.5 brightness:0.5 alpha:1];



     用RGB和不透明度来返回一个颜色对象

  同上一样参数都是CGFloat类型值在0~1之间大于1的话就是1小于0的话就是0

   RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一

   RGB的所谓多少就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从012...直到255。注意虽然数字最高是255,但0也是数值之一,因此共256

   因为我们这的数值是0~1之间的所以这个数值要除以255才能正常显示

   [[UIColor alloc]initWithRed:150/255. green:150/255. blue:150/255. alpha:1]这个方法一样

   self.view.backgroundColor = [UIColor colorWithRed:150/255. green:150/255. blue:150/255. alpha:1];



     参数是一个CGColorRef结构体 UIColor这个类的其中一个属性就是CGColorRef

  [[UIColor alloc]initWithCGColor:cgColor]一样

  平时开发中本人比较少见 所以理解的并不深刻在这不做深究

  CGColorRef cgColor = [UIColor redColor].CGColor;

  self.view.backgroundColor = [UIColor colorWithCGColor:cgColor];


    这个方法很消耗内存  就单单这个方法在我模拟器上内存消耗19.1不如设置他的背景颜色

  view1.layer.contents = (id) [UIImage imageNamed:@"01"].CGImage;网上说这种方式比较省内存 我试了一下 内存消耗19 但是这个方法默认的不是左上角  是全部填充的

  而且目前这个方法设置的图片总是frame不对,这个还不能通过属性来解决建议不要用这个方法

  若必须要用的话 我的建议是用view1.layer.contents = (id) [UIImage imageNamed:@"01"].CGImage;来代替

  [[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"01"]]这个方法一个效果

  view1.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"01"]];

  如图

  




  Core Image转化为UIColor颜色一样 本人对CIColor理解的不深这个方法不做深究 以后在详细研究

  [[UIColor alloc]initWithCIColor:ciColor]方法效果一样

  CIColor * ciColor = [CIColor colorWithRed:155/255. green:155/255. blue:155/255.];

  self.view.backgroundColor = [UIColor colorWithCIColor:ciColor];


     也可以这样写 

  self.view.backgroundColor = [UIColor darkGrayColor];

     他们其实是调用的是colorWithWhite:0.33 alpha:1 colorWithRed:150/255. green:150/255. blue:150/255. alpha:1这两个方法 alpha都为1 不透明

  只有clearColor不透明度为0意思是透明了

   + (UIColor *)blackColor;      // 0.0 white

   + (UIColor *)darkGrayColor;   // 0.333 white

   + (UIColor *)lightGrayColor;  // 0.667 white

   + (UIColor *)whiteColor;      // 1.0 white

   + (UIColor *)grayColor;       // 0.5 white

   + (UIColor *)redColor;        // 1.0, 0.0, 0.0 RGB

   + (UIColor *)greenColor;      // 0.0, 1.0, 0.0 RGB

   + (UIColor *)blueColor;       // 0.0, 0.0, 1.0 RGB

   + (UIColor *)cyanColor;       // 0.0, 1.0, 1.0 RGB

   + (UIColor *)yellowColor;     // 1.0, 1.0, 0.0 RGB

   + (UIColor *)magentaColor;    // 1.0, 0.0, 1.0 RGB

   + (UIColor *)orangeColor;     // 1.0, 0.5, 0.0 RGB

   + (UIColor *)purpleColor;     // 0.5, 0.0, 0.5 RGB

   + (UIColor *)brownColor;      // 0.6, 0.4, 0.2 RGB

   + (UIColor *)clearColor;      // 0.0 white, 0.0 alpha


  另外 跳到头文件你可以看到


  还有三个方法,这三个方法目前以我的经历来看就只用在了绘图,其他地方这个方法见的不多

  setStroke是填充空心的 setFill填充实心的  set是两种都可以用

  CGContextRef ref =UIGraphicsGetCurrentContext();

  

  CGContextMoveToPoint(ref,50, 50);

  

  CGContextAddLineToPoint(ref,100, 100);

  

  CGContextSetLineWidth(ref,20);

  

  CGContextSetLineCap(ref,kCGLineCapRound);

  [[UIColorblueColor] set]; //这个方法和[[UIColor blueColor] setStroke];实现的效果是一样的

  CGContextStrokePath(ref);


  CGContextAddRect(ref,CGRectMake(250,10, 100, 200));

  [[UIColoryellowColor] set];//这个方法和[[UIColor yellowColor] setFill];实现的效果是一样的

  CGContextFillPath(ref);

 如图所示

 画得蓝色和黄色的部分

 其余的方法都被抛弃了,暂时不做研究,本人菜鸟,若代码写的有问题或者不合适的地方,请大神指出来,先谢谢啦


0 0
原创粉丝点击