1. 在Storyboard中给TableView添加headerView和footerview

先推荐一篇博客吧,写的挺详细的
不过博客的Tips中指出

UITableViewController或者UIViewController+UITableView的组合都一样适用,但是后者要记得给UITableView添加一个Cell才能添加footerView

但是我在Xcode 8 和 Xcode 7 都试过,不需要额外添加cell也可以添加Header 和 Footer,也许是更早以前的版本需要这么处理吧。

2. 在UITextField聚焦和失去焦点的时候做点事情

有时候我们可能需要在UITextField聚焦或失去焦点的时候调用一个方法,或者设置一个属性,比如说在“百思不得姐”APP的登录界面,当UITextField聚焦时将placeholder的文本颜色改成白色,在失去焦点的时候再修改成灰色。对于这种需求,可以通过实现代理方法的方式来实现,但是如果一个页面UITextField很多,而且要求不同的UITextField在聚焦时要修改的颜色不一样,就得在代理方法中判断是哪个UITextField聚焦,比较繁琐。那这里呢,介绍另一种方法来实现这个需求。

因为通常情况下,让一个UITextField聚焦,调用的是- (BOOL)becomeFirstResponder这个方法。所以只需要继承UITextField,然后再重写这个方法即可。

- (BOOL)becomeFirstResponder
{
    //做点事情
    return [super becomeFirstResponder];
}

- (BOOL)resignFirstResponder
{
    //做点事情
    return [super resignFirstResponder];
}

3. 在iOS10中各subView尺寸都是1000*1000

在iOS10中使用自动布局,然后在viewDidLoad中将控件的frame打印出来是 (0 0;1000 1000),即使你给控件添加了明确的宽高约束。

如果想获取到它们的真实尺寸的话,可以强行来一波layoutIfNeed

因为我记得以前在viewDidLoad中是可以拿到控件的比较正常的frame的,所以我在Xcode7中创建了工程试了一下,结果如图

4. iOS 10访问相册相机崩溃

其实在iOS 10中不仅仅是直接访问相册程序会崩溃,访问其他隐私也会出现这个问题,需要在info.plist文件中做相应的配置,才能正常的向用户索要权限。在网上找到一篇博客,对这一块总结的挺详细的,传送门

5. 在MAC上进行拷贝、压缩等操作,报代码为8085的错误

最近有一次提交代码总提交不上去,找不出原因。后来我把工程放到了另一个地方,再拷贝一份过来,然后报8085的错。百度一下后,看到有人说是文件递归的问题。然后我开始仔细查看工程文件夹,发现确实有一个文件夹出现了这个问题,如图

但是在Xcode中是看不出这个问题,可能是我 add files 的时候手误弄出的问题吧。