美文网首页
UI进阶2 pickerView键盘处理

UI进阶2 pickerView键盘处理

作者: SoManyDumb | 来源:发表于2016-08-04 19:17 被阅读50次

    选择国旗

    • 1.搭建界面
    • 2.设置pickerView的数据源 - -
    • 3.分析有多少列,只有一列,因为是文字和图片是同时滚动,如果两列的话, 不会同时滚动
    • 4.加载plist数据,分析数据结构
      plist是个数组:返回这一列有多少行国旗
      数组里是一个字典:描述着国旗的属性
    • 5.字典转模型
    • 6.有了数据就需要把数据展示到界面,不能用返回每行标题的方法
    • 7.搞一个View,每行需要展示一个标题和图片 -
    • 8.自定义view,系统自带的UIView,不好使
    • 9.用xib描述自定义view,里面控件是固定的
    • 10.设置每行的高度为44 -
    • 11.返回每行cell样子的代理方法,reusingView在ios7没有效果,view永远都是 空,没有做缓存。

    键盘处理

    • 1.搭建界面
    • 2.文本框不可以让用户编辑
      • 2.1不能设置enable= NO,键盘不能弹出来
      • 2.2 通过代理,不允许用户输入,只有生日和城市不需要用户输入,添加 一个判断
    • 3.自定义生日键盘
      • 3.1 UIDatePicker基本使用,模式,地区 - -
      • 3.2监听UIDatePicker的事件,继承UIControl,直接addTarget - 3.3日期格式对象,把date转换字符串,显示到文本框
    • 4.自定义城市键盘
      • 4.1 UIPickerView,展示数据需要设置数据源和代理 -
      • 4.2解析plist数据,分析数据结构
        plist是个数组,表示有多少个省份
        数组里是一个字典,里面包含省份的信息,名称和城市列表
      • 4.3 实现数据源和代理,把数据展示到视图
      • 4.4 和之前的点餐不一样,之前直接能获取到每一列有多少行,这里需要 判断当前是哪一列,根据第0列获取第1列的行数,第0列是省,第1列是 城市,城市由省决定
      • 4.5 返回第component列多少行
      • 4.6 返回第component列第row行的标题,这里的行号可能是第0列的和第 1列的,需要做判断。第0列的row,表示是哪个省,第1列的row,表示 是当前第1列选中的省会的哪个城市。
        第0列,省会的标题,取决于省会数组行号 第1列,城市的标题,取决于当前选中哪个省
      • 4.7 解决二级联动的问题,两列同时滚动,会报角标越界错误
        • 原因:返回每一行的样子的代理方法会经常调用,只要有新的一行 出现就会调用。这里每次都会获取最新选中的省,而第0列展示的 是之前选中的省会,如果最新选中的省会的城市总数小于之前选中 的省会。
        • 假设:最新选中的城市只有有4个,但是之前选中的省会城市有10 行,当第1列滚到5就会报角标越界错误。
        • 解决方式:这里不能获取最新的选中省会,需要记录之前选中的, 且只需要记录一次,在选中一行的代理方法里记录。 注意:在刷新城市之前记住省会角标,应该刷新的城市,是当前选 中的省会的城市。
      • 4.8 监听城市选择,选中新的省会。
        • 1> 记录选中的省会
        • 2> 刷新第1列
        • 3> 第一列默认选中第一个城市
        • 4> 把选中的省会和获取选中的城市显示到文本框
        • 5.添加自定义键盘工具条
          • 5.1 封装工具条:继承UIView,原因:不让外界知道里面是什么东西,就不 能修改Toolbar里面的东西。
          • 5.2固定的,用xib 述,并且 供类方法快速创建对象 - 5.3整个文本框应该拥有同一个键盘工具条,懒加载一个键盘工具条,然 后遍历所有的文本框,搞个可变数组把所有文本框添加到数组
          • 5.4监听item点击,通过代理通知控制器。
          • 5.5当点击下一个,应该是后面的文本框有弹出键盘,成为第一响应者, 怎么判断下一个文本框是谁?
            ○ 把所有文本框加入到数组中,记录当前弹出键盘的文本框所在的角 标,++就是下一个文本框了。
            ○ 在文本框开始编辑的时候,记录,编辑的文本框就是弹出键盘的文 本框
          • 5.6 解决角标越界的问题,当当前弹出键盘的文本框是第一个角标的时 候,上一个不允许点击

    相关文章

      网友评论

          本文标题:UI进阶2 pickerView键盘处理

          本文链接:https://www.haomeiwen.com/subject/cothsttx.html