day1

颜色通道

  • 一个颜色是由N个颜色通道组成
  • 一个颜色通道占据8bit
  • 一个颜色通道的取值范围
    • 十进制:[0, 255]
    • 十六进制:[0x00, 0xFF]
  • 常见的颜色通道
    • Red
    • Green
    • Blue
    • Alpha

颜色的类型 - 24bit颜色

  • 由RGB三个颜色通道组成
  • 表示形式
    • 十进制(格式:R,G,B)
      • 红色:255,0,0
      • 蓝色:0,0,255
      • 绿色:0,255,0
      • 白色:255,255,255
      • 黑色:0,0,0
      • 灰色:x,x,x(RGB一样)
    • 十六进制(格式:#RRGGBB)
      • 红色:#FF0000
      • 蓝色:#0000FF
      • 绿色:#00FF00
      • 白色:#FFFFFF
      • 黑色:#000000
      • 灰色:#ABABAB(RGB一样)
    • 特殊情况
    • 如果1和2同 , 3和4同 , 5和6同,可以缩写
    • 比如#66AA44,可以缩写为#6A4

颜色的类型 - 32bit颜色

  • 由RGBA四个颜色通道组成
  • 表示形式
    • 十进制(格式:R,G,B,A)
      • 红色:255,0,0,255
      • 蓝色:0,0,255,255
      • 绿色:0,255,0,255
      • 白色:255,255,255,255
      • 黑色:0,0,0,255
      • 灰色:x,x,x,255(RGB一样)
    • 十六进制(用在Android平台,格式为#AARRGGBB)
      • 红色:#FFFF0000
      • 蓝色:#FF0000FF
      • 绿色:#FF00FF00
      • 白色:#FFFFFFFF
      • 黑色:#FF000000
      • 灰色:#FFABABAB(RGB一样)

Appearance

  • 只要方法名或者属性名后面带有UI_APPEARANCE_SELECTOR这个宏,就可以通过[XXX appearance]对象来统一设置
  • 比如
UINavigationBar *nav = [UINavigationBar appearance];
[nav setBackgroundImage:[UIImage imageNamed:@"defaultUserIcon"] forBarMetrics:UIBarMetricsDefault];

UINavigationBar *nav1 = [[UINavigationBar alloc] init];
// [nav1 setBackgroundImage:[UIImage imageNamed:@"defaultUserIcon"] forBarMetrics:UIBarMetricsDefault];

UINavigationBar *nav2 = [[UINavigationBar alloc] init];
// [nav2 setBackgroundImage:[UIImage imageNamed:@"defaultUserIcon"] forBarMetrics:UIBarMetricsDefault];

UINavigationBar *nav3 = [[UINavigationBar alloc] init];
// [nav3 setBackgroundImage:[UIImage imageNamed:@"defaultUserIcon"] forBarMetrics:UIBarMetricsDefault];

字典中的文字属性key

  • iOS7之前 : UITextAttributeXXX, 可以在UIStringDrawing.h中找到
  • iOS7开始 : NSXXXAttributeName, 可以在NSAttributedString.h中找到
  • 比如
// 设置normal状态下的文字属性
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:13];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];

UITabBarItem *item = [UITabBarItem appearance];
[item setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];

// 以后看到attributes和NSDictionary,就是从NSAttributedString.h文件中查找key

iOS新技术更新的小规律

  • iOS8出了新框架Abc.framework, 完全可以取代以前的MapKit.framework
  • iOS9开始不推荐使用MapKit.framework,建议使用Abc.framework

DEBUG宏的位置


- 在Preprocessing中定义的宏名字,不能全都是小写字母。不然会出现以下错误:

出现以下错误,是因为在C\C++源代码文件中使用了OC的东西

PCH的书写注意

/**** 在#ifdef __OBJC__和#endif之间的内容,只会出现在OC的源代码文件中 ****/
// 如果是OC源代码文件
#ifdef __OBJC__

#define XMGHeight 200

#endif
/**** 在#ifdef __OBJC__和#endif之间的内容,只会出现在OC的源代码文件中 ****/

#define XMGAge 20

// XMGHeight这个宏,只会出现在OC的源代码文件中
// XMGAge这个宏,会出现在这个项目的所有源代码文件中

UIImage可能会带来的警告

  • [UIImage imageNamed:nil]
    • CUICatalog: Invalid asset name supplied: (null)
  • [UIImage imageNamed:@”“]
    • CUICatalog: Invalid asset name supplied:

分类的使用注意

  • 分类的方法名和属性名前面最好带有项目前缀
@interface UIView (XMGExtension)
@property (nonatomic, assign) CGFloat xmg_width;
@property (nonatomic, assign) CGFloat xmg_height;
@property (nonatomic, assign) CGFloat xmg_x;
@property (nonatomic, assign) CGFloat xmg_y;
@end

属性在@interface中的作用

  • 类的声明定义
@interface XMGUser : NSObject
@property (nonatomic, assign) CGFloat xmg_width;
/**
 1.方法声明
 - (CGFloat)xmg_width;
 - (void)setXmg_width:(CGFloat)xmg_width;

 2.下划线开头的成员变量 CGFloat _xmg_width

 3.方法实现
 - (CGFloat)xmg_width {
    return _xmg_width;
 }

 - (void)setXmg_width:(CGFloat)xmg_width
 {
    _xmg_width = xmg_width;
 }

 */
@end
  • 类扩展
@interface XMGUser ()
@property (nonatomic, assign) CGFloat xmg_width;
/**
 1.方法声明
 - (CGFloat)xmg_width;
 - (void)setXmg_width:(CGFloat)xmg_width;

 2.下划线开头的成员变量 CGFloat _xmg_width

 3.方法实现
 - (CGFloat)xmg_width {
    return _xmg_width;
 }

 - (void)setXmg_width:(CGFloat)xmg_width
 {
    _xmg_width = xmg_width;
 }
 */
@end
  • 分类
@interface XMGUser (Extension)
@property (nonatomic, assign) CGFloat xmg_width;
/**
 方法声明
 - (CGFloat)xmg_width;
 - (void)setXmg_width:(CGFloat)xmg_width;
 */
@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值