UI基础第三天(知识点)

一、Xcode快捷键

  • shift + comand + n 新建xcode项目
  • option + command + n 新建分组
  • command + n 新建文件
  • control + comand + 上/下 .m/.h文件切换
  • control + comand + 左/右 上一个和下一个文件之间的切换
  • command + ~ 窗口之间切换
  • ontrol + command + j 查看定义
  • option + command + 左/右 折叠/展开代码块
  • command + r 编译运行项目
  • command + b 编译不运行
  • command + . 停止

二、xib和stroryboard的区别

1、相同点:

  • 都用Interface Builder工具来编辑
  • 都使用xml来存储,用于描述软件界面

2、不同点:

  • Storyboard描述软件界面,相对于xib比较重量级,一个stroryboard可以有多个场景,可以描述整个软件的所有界面
  • xib一般用来描述一个界面中的某一个部分
  • 查看xib和storyboard的xml代码,区别仅仅是xib少了Scenes和viewController

三、instancetype和id的区别

  • instancetype在类型表示上与id一样,都是表示任何对象的类型
  • instancetype只能用在返回类型上,不能跟id一样用在参数类型上,id是万能类型
  • instancetype比id多一个好处,编译器会检测instancetype的真实类型

四、自定义View

1、注意:

  • 要调整View的尺寸大小,要再属性栏的Size设置为Freeform
  • 要把显示电池状态的图标去掉,把属性栏的Status Bar设置为None
  • 拖进View的子控件的尺寸尽量在尺寸栏上设置,以免出现界面自动调整大小

          

2、编辑View的类

  • 把所有关于View的操作都封装,降低耦合程度
  • 读取XIB文件

//新建子View
+(instancetype)buildView{
    
    NSBundle *bundle = [NSBundle mainBundle];
    SSView *view = [[bundle loadNibNamed:@"SSView" owner:nil options:nil] lastObject];
    return view;
}

  • 在重写关于取子控件的值的Getter方法时不要忘记先赋值

//重写setter方法,初始化子控件
-(void)setData:(SSData *)data{
    //不要漏掉,漏掉后在点击事件时调用就取不到数据
    _data = data;
    //添加应用图片
    self.imageView.image = [UIImage imageNamed:data.photo];
    //添加应用名称
    self.nameLabel.text = data.name;
}

  • 取消与用户交互

    //下载时取消和用户的交互
    self.superview.userInteractionEnabled = NO;
    //下载完成后禁用
    sender.enabled = NO;

五、补充

  • 类名命名:公司名+类名
  • IBOutlet类型的属性命名:有意义的单词+控件名
  • 方法名命名规则:第一个单词首字母小写,后面的每个单词的首字母大写
  • 同时重写get和set方法时,要自己定义成员变量,系统不自动生成
  • NSBundle表示APP应用的包
  • 获取APP的路径函数:NSHomeDirectory();
  • 不能把XIB上的子控件直接拖到@implementation...@end上生成连线代码
  • 在写两个相同功能的构造方法时,一般用类方法调用对象方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值