记录下开发中遇到的一些比较烦人的小问题。(随时记录)


1.这个是使用xib定义控件后在代码中无法修改,而且使用代码来进行AutoLayout遇到麻烦。

        这个问题首先要检查你的xib中是否勾选Use AutoLayout选项了,如果勾选了,就无法在代码中修改控件的frame,同时给你在使用代码来进行控件的AutoLayout带来了麻烦。

2.这个是alloc UIViewController的时候遇到的问题,图节省代码。

        在alloc UIViewController的时候 直接

[self.navigationController pushViewController:[[MyFootPrintViewController alloc]initWithNibName:@"MyFootPrintViewController" bundle:nil] animated:YES];

没有分开来写,结果在alloc的时候,粗心MyFootPrintViewController写成了UIViewController,在MyFootPrintViewController各种调试,不进viewdidload方法,最后被同事各种鄙视。


3.这个是使用FMDatabase创建数据库不成功。也是自己粗心...

        在使用FMDatabase创建数据库的时候各种不成功,最后发现是自己的路径问题。把NSDocumentDirectory写成了NSDocumentationDirectory,没有这个文件夹,所有创建不成功。

/**
 *  获取数据库的路径
 *
 *  @return 数据库路径
 */
- (NSString *)getDBPath{
    
    NSString * docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    
    return [docPath stringByAppendingPathComponent:DBName];
}

4.这个是在做类似微信发朋友圈的图片功能遇到的,不能给不同的view添加同一个手势。

        给不同的view添加同一个手势,经测试无效。

[_img_First addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(chooseImage)]];
[_img_Second addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(chooseImage)]];

5.这个是在弄UITableView的时候发生的偏移。

        经过测试,在IOS7以后,如果UIScrollView是super view第一个子view时,系统会自己添加偏移量,如果不想要偏移,取巧的解决办法就是添加一个空白的view在UIScrollView的前面。UITableView和UICollectionView都是UIScrollView的子类,也适用。

6.在做UICollectionView的下拉刷新时候遇到的不能下拉的问题。

        在给UICollectionView添加下拉刷新控件的时候,遇到了无法下拉的情况,各种烦躁,最后一个同事提醒,UICollcetionView默认数据不满一屏是不可以滑动的,如果需要滑动,需要添加

self.cl_MyPhoto.alwaysBounceVertical = YES;

7.在做UILable自适应文字遇到的问题

         在做UILable自适应的时候遇到一个显示不全的问题,通过sizewithfont计算得出的高度,有些系统版本显示少一行,是因为不同的系统这个计算方法得出的size.height小数点不同,对size.height做一个ceil(size.height)就可以解决这个问题。       

8.在使用第三方下拉刷新库SVPullToRefresh时遇到只刷新一次的问题

         在给UITableView添加下拉刷新和上拉加载使用SVPullToRefresh的时候遇到只刷新一次,各种纠结,因为已经给UICollectionView添加过,也没问题,为什么这个就只刷新一次??? 最后发现,SVPullToRefresh必须在一次刷新结束后添加stopAnimating。

[_tb_NearPoi.infiniteScrollingView stopAnimating];

9.做NSUserDefault时判断某个key是否存在的时候

         在判断NSUserDefault中某个key是否存在的时候,通过下面的方法获取全部的key,是一个NSArray,再判断NSArray中是否有这个key。

[NSUserDefaults standardUserDefaults].dictionaryRepresentation.allKeys

10.FMDatabase使用插入bool类型的数据

        FMDatabase插入数据时需要保证是NSObject类型,所以插入bool类型的时候需要转换为NSNumber类型。

footPrint.isSync?@1:@0