1.表单键盘遮挡
应用场景为一个collectionView上有多个textfield、textView供用户填写信息。
之前输入项较少时,采取的方法比较粗暴,didSelectItemAtIndexPath时,记下collectionViewCell距离屏幕底部的间距,再与键盘高度作比较,根据实际情况调整collectionView的contentOffset,但是当输入项较多时这个方法就不行了,需要计算更多collectionViewCell距离屏幕底部的间距,容易出错。
《Text Programming Guide for iOS》-Managing the Keyboard一节中介绍了解决办法,这里由于用了Masonry,不方便直接调整frame,稍微变通下即可
(1)选择输入项时记下indexPath,方便后续collectionView滑动操作images/loading.gif' data-original="http://images2015.cnblogs.com/blog/468221/201602/468221-20160226101804568-948927611.png" width="867" height="62" />
这里需要注意的是,collectionViewCell里textField、textView的userInteractionEnabled都设置为NO,在用户选中时才成为第一响应者。
(2)获得键盘高度,根据键盘高度对collectionView调整,并滑动到目标cel的位置
(3)键盘隐藏时,恢复collectonView的初始约束
2.浮点数价格格式化显示
有这样一个应用场景:价格精确显示到2位小数 ,小数点为0则不显示,例如99.00显示为99,99.90显示为99.9元,直接用NSString的stringWithFormat方法转换小数点部分的显示是不符合要求的,首先得到包含2位小数的字符串,再特殊处理一下即可将小数部分的0去掉,如图所示:
参考:iOS 浮点数去掉小数点之后的0.00以及价格格式显示
3.修改UIPickerView内容样式
使用UIPickerView时,默认显示的内容可能不符合要求,经常是需要修改其内容样式的,例如文字大小等等,UIPickerView本身是提供了这样的一个代理方法供我们去自定义
4.View Debugging
Xcode本身提供了一些视图调试的小工具 ,画界面的时候调试分析问题很管用,尤其是当界面显示不正确的时候有助于定位问题。Xcode工具栏Debug-View Debugging中能找到这些小工具,从上到下分别是屏幕截图快照、视图分层次析以及显示View的frame等等
(1)屏幕截图快照顾名思义就是截取屏幕当前状态保存为照片了
(2)Capture View Hierarchy这个有助于检查界面的约束、视图层次等
(3)Show View Frames/Show Alignment Rectangles用来显示视图元素的frame或对齐矩形,个人一般用show View Frames这一选项,最后屏幕上各个UI元素周围会多出一个矩形,代表其尺寸大小,对一些元素之间布局显示异常的情况,有助于定位找到UI元素的约束设置问题。
原标题:iOS开发笔记11:表单键盘遮挡、浮点数价格格式化显示、修改UIPickerView内容样式、View Debugging
关键词:IOS