pragram预处理指令
- #pragram mark
代码逻辑分块
常用快捷键
- 查看文档说明
选中要查看的api,按住option+左键:
- 注释
cmd + /
框架
- Masonry
autolayout
http://adad184.com/2014/09/28/use-masonry-to-quick-solve-autolayout/
### 使用注意
+ 案例
make.left.equalTo(self.contentView).offset(12);
make.top.equalTo(self.contentView).offset(18);
make.size.width.mas_equalTo(32);
make.size.height.mas_equalTo(32);
每个属性设置都单独写;因为是链式语法,如果所有属性的配置都放在一起感觉后面的设置会覆盖前面的设置。
+ 居中
> make.center
+ 垂直居中
> make.centerY
+ 水平居中
> meke.centerX
工具
- cocoapods
程序依赖管理
http://blog.devtang.com/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/ - Sketch
http://xclient.info/s/sketch.html?_=f4b9875cb3f64933e7149aa2d7a5060e
-
Git
- SourceTree
控件
- UIImageView
http://blog.sina.com.cn/s/blog_9c2363ad0101e15l.html
- 圆形ImageView
imageView.layer.cornerRadius = imageView.frame.size.with/2; //设置半径为宽度的一半
imageView.layer.masksToBounds = YES; //隐藏掉被遮挡的内容;
- 圆形ImageView
- UITableView
https://www.kancloud.cn/digest/ios-1/107419
- 设置UITableViewDelegate,试图加载委托
- 设置UITableViewDataSource,数据绑定
- 可以自定义Cell,需要继承UITableViewCell
- 坑:
Q:使用Section实现“历史消息”,将TableView的Style设置Group,分别重写HeightForFooter,heightForHeader,ViewForHeader后,section之间出现了一个分割;
A:重写ViewForFooter后,将改方法的返回值设为nil,分割就取消了;
- UITextView
类似于Android里面的EditText
- UILabel
文本
- UIButton
- UIAlertController
API
- UIFont
设置文本字体
- UITableViewDelegate
- UITableViewDataSource
异常
- 编译失败,符号冲突
由于import了.m文件,导致;import .h文件后编译成功;
- unrecognized selector sent to instance
给nil对象发送了消息
- 自定义的UITableViewCell没有被UI TableView调用
需要调用UITableView的registerClass方法注册自定义的cell
- NSInternalInconsistencyException
reason: 'couldn't find a common superview for <UITextView: 0x7fdb4d015200;
原因:是在设置view的约束前没有调用addSubView方法将view添加到parent view中。
解决办法:是在view初始化完成后调用parentview的addsubview方法;
Objective-C零碎
- Objective-C的属性修饰符
- @class
TODO
- js在微信、微博、QQ、Safari唤起App的解决方案