你的位置:首页 > 操作系统

[操作系统]iOS开发笔记11:表单键盘遮挡、浮点数价格格式化显示、修改UIPickerView内容样式、View Debugging


    1.表单键盘遮挡

    应用场景为一个collectionView上有多个textfield、textView供用户填写信息。

    之前输入项较少时,采取的方法比较粗暴,didSelectItemAtIndexPath时,记下collectionViewCell距离屏幕底部的间距,再与键盘高度作比较,根据实际情况调整collectionView的contentOffset,但是当输入项较多时这个方法就不行了,需要计算更多collectionViewCell距离屏幕底部的间距,容易出错。

  《Text Programming Guide for iOS》-Managing the Keyboard一节中介绍了解决办法,这里由于用了Masonry,不方便直接调整frame,稍微变通下即可

  (1)选择输入项时记下indexPath,方便后续collectionView滑动操作

    这里需要注意的是,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元素的约束设置问题。