UI进阶2 pickerView键盘处理

选择国旗

  • 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 解决角标越界的问题,当当前弹出键盘的文本框是第一个角标的时 候,上一个不允许点击
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 一、介绍UIPickView和UIDatePicker 1.UIPickView什么时候用? •通常在注册模块,当...
    Hevin_Chen阅读 1,112评论 0 2
  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,495评论 0 11
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,460评论 25 707
  • 刚才看了六六的一篇文章《别人家的孩子》,想想自己颇有感触。 我和我的小伙伴们,都属于被父母耳提面命、教导一定要好好...
    晓妮臆空间阅读 567评论 2 0
  • 三月 我要原谅一条走失的河流 原谅江南明媚的桃花 擦亮北方的忧愁 原谅一场冰冷雪 推迟了春天的花瓣 二月已成旧事 ...
    梦双眸阅读 308评论 0 5