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 的时候手误弄出的问题吧。