1. 关于push和pop的一些跳转方法
方法一:代理
方法二:通知
2. 关于使用Cornerstone合并后.xcodeproj文件打不开的情况
解决办法:1.在Finder中找到项目对应的.xcodeproj,右键点击选择显示包内容
2.双击打开project.pbxproj文件
3.找到类似如下的冲突信息(可用command + f 搜索)
4.删除<<<<<<.mine
======
>>>>>>>>>.r269
5.保存文件,退出x-code 重新打开即可
3. UIAppearance的用法
我们可以通过UIAppearance设置一些UI的全局效果,这样就能很方便的实现UI的自定义效果又能最简单的实现统一界面风格
//统一修改某个控件的UI风格
+(id)appearance
//修改多个控件的UI风格
+(id)appearanceWhenContainedIn:(nullable Class <>)ContainerClass, ...
4. 获取当前的设备的系统版本号
//获取当前设备的系统版本号
[UIDevice currentDevice].systemVersion.floatValue
5. UITableView的contentInset的属性
//官方解释,添加额外的滚动附近区域的内容
UITableView *tableView = [UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
//该属性在这里表示添加向上20个像素的额外滚动区域
tableView.contentInset = UIEdgeInsetsMake(20,0,0,0);
6. 命令行的基本使用
看桌面下有什么文件 :ls desktop 回车
看桌面中的某一个文件夹下面有什么文件:ls desktop/文件名 回车
到指定的文件(如果该文件在桌面) cd desktop/文件名 回车
7. 类目的基本格式
在这里以AppDelegate
类为例
在项目中是以AppDelegate+(自定义的名字)存在
在.h和.m文件中是以AppDelegate (自定义的名字)存在
8. Localizable.strings
文件的创建
在项目中,我们可能会涉及到多语言app的开发,这时Localizable.strings
文件便可以派上用场了
第一步,在Supporting Files文件下创建Localizable.strings
文件
第二步
第三步 将Localizable.strings的English勾选上
第四步 在PROJECT中的info下找到Localizations属性,为其添加中文属性
第五步
第六步 将对应的key和value写在对应的语言文件下
第七步 在项目中使用
//如果模拟器的语言设置为简体中文,tip输出为姓名,如果语言为English,tip输出为name
/*
注意:当NSLocalizedString没有找到key对应的value值时,会默认为key值
*/
NSString *tip = NSLocalizedString(@"test", @"name");
NSLog(@"%@",tip);
9. 列表刷新的问题
在项目中,我们经常会遇到这样的情况,后一个控制器进行某些操作后,会引起前一个列表状态的改变,在这里提供几种解决办法
1.在下一个界面,请求数据成功,发送通知给上一个界面
2.在下一个界面,执行某一个事件后,使用代理
10. xib的cell高度自适应问题
传送门http://www.cocoachina.com/ios/20140922/9717.html
11. pod install SDWebImage出现的问题
问题1:在命令行中输入pod install
或者是pod update
界面 卡在Updating local specs repositories
解决办法:将pod install
换成 pod install --verbose --no-repo-update
同理 将pod update
换成 pod update --verbose --no-repo-update
问题2:在pod安装成功后,运行项目,在SDWebImageDownloaderOperation
中报Use of undeclared identifier '_executing'; Use of undeclared identifier '_finished
原因:NSOperation.h
中声明了两个同名的属性
解决办法:使用@synthesize
对属性进行重命名,在SDWebImageDownloaderOperation
类的实现中(@implementation SDWebImageDownloaderOperation{...}
下面)添加
@synthesize executing = _executing ;
@synthesize finished = _finished;
12. pch文件的创建问题
问题一:如何创建pch文件
解决办法:右键项目->new File...
->在弹框的左边中选择other
,在弹框的右边选择PCH File
->属于文件名后点击Greate
问题二:如何将创建好的pch文件与项目关联起来
解决办法:点击TARGETS
->点击Build Settings
->在其下方找到Prefix Header
选项 ->双击,填写"项目名/pch文件名" 例:loveFlower/PrefixHeader.pch
问题三:pch文件中导入
报Counld not build module UIKit
错误
解决办法:
#ifdef OBJC
#import
#endif
13. push后如何隐藏底部tabBar
解决办法:
IMViewController *viewController = [IMViewController alloc] init];
viewController.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:viewController animated:YES];
14. xib如何给多个控件居中显示
问题:在开发过程中,我们经常会遇到,登录界面需要适配不同的屏幕尺寸,比如要登录名icon和登录名textField居中显示。
解决办法:
第一步:创建控制器时,勾选上
Also create XIB file
第二步:创建成功之后的xib的宽和高都是600,此时在xib中把Use sizeClasses
置成不打勾的状态,这样xib的宽和高会变成320和568
第三步:拖一个view充当背景view,然后所有的控件都加载在这个背景view上,此时我们只需对这个背景view添加一个垂直居中的约束即可
第四步:设置完之后,clear一下,然后重启demo即可
15. 在ARC环境下如何使用MRC环境中的变量
解决办法:在Build Phases中找到对应的类,双击输入-fno-objc-arc
即可
16. 微信中点击cell后马上取消选中的实现
解决办法:在didSelectRowAtIndexPath
方法中添加一段代码即可
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//选中后取消选中
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
17. 在数组中使用removeObject遇到的问题
问题:使用该方法remove不掉对象?
原因:数组中对象的地址和要remove的对象地址已经不同
解决办法:遍历数组,找到需要remove的对象,再调用removeObject方法
附加遇到的问题:当我们对同一个数组在同一时间进行多种操作时,比如在同一时间进行插入增加和遍历删除,这样就会抛错
解决办法:使用NSMutableArray
重开一个线程
NSMutableArray *copyArray = [NSMutableArray arrayWithArray:_selectArray];
18. tableView中取消cell的点击效果
解决办法:[tableView deselectRowAtIndexPath:indexPath animated:NO];