1.如果tableView设置为分组的样式(默认是有cell之间的分割线,可以设置颜色),默认有组以及组尾的高度
需要手动在组头组尾的代理方法中进行组高的设置(如果想设置为0,最好写0.01)
2.组头如果有标题的话,如果想在上面加一个Label的话,最好是自定义组头
3.如果设置在tableView的init方法中设置tableView的分组样式的话
例如重写了tableVeiw的init方法
//初始化方法
-(instancetype)init{
self = [super initWithStyle:UITableViewStyleGrouped];
self.tableView.showsVerticalScrollIndicator = NO;
self.tableView.showsHorizontalScrollIndicator = NO;
return self;
}
这时候就要考虑,init执行的同时,也操作了tableView,这是会在init的同时执行viewDidLoad的方法
如果init完紧接着执行了push该tableViewController的相关操作,但push之前给tableView的数据源进行了赋值
这时候就要考虑 setupUI的相关操作是在数据源的set方法之前还是之后进行的了,否则init了tableViewController还未设置数据就setupUI
会导致视图无数据
4.数据文件管理器,保存文件的方式
//这里将图片放在沙盒的documents文件夹中
NSString * DocumentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
//文件管理器
NSFileManager *fileManager = [NSFileManager defaultManager];
//把刚刚图片转换的data对象拷贝至沙盒中 并保存为image.png
[fileManager createDirectoryAtPath:DocumentsPath withIntermediateDirectories:YES attributes:nil error:nil];
[fileManager createFileAtPath:[DocumentsPath stringByAppendingString:@"/image.png"] contents:data attributes:nil];
5.使用textField监听输入变化,使用UIControlEventEditingChanged键值
6.只有有footView时才有点击或下拉加载更多
7.
NSNumber *sex = nil;
if (sex==nil) {
NSLog(@"%ld",[sex integerValue]);//打印0
}
8.关于tableView是否进行注册的声明
dequeueReuseableCellWithIdentifier方法可以不用注册,
但是必须对获取回来的cell进行判断是否为空,if(cell!=nil)
但是如果使用dequeueReuseableCellWithIdentifier:forIndexPath则是要进行注册
9.
若使用Xib,使用 registerNib: 注册,dequeue时会调用awakeFromNib
不使用Xib,使用 registerClass: 注册, dequeue时会调用initWithStyle:withReuseableCellIdentifier:
10.使用sd下视图的时候,获取image
[ImageView sd_setImageWithURL:url completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
if (image)//即可得到sd下载的image
{}
}];
11.小技巧,,set方法可以接一层进行
cell.cellView.urlString =modal.urlString;
走的是cell中自定义控件cellView中的urlString属性的set方法
12.pch,只是项目名称/pch 就行了