当前位置: 首页 > news >正文

福建网站建设费用/seo长尾关键词优化

福建网站建设费用,seo长尾关键词优化,如何申请单位邮箱,公司做公司网站广告http://www.cocoachina.com/ios/20150703/12365.html 在涉及到表单输入的界面中,我们通常需要监听一些键盘事件,并根据实际需要来执行相应的操作。如,键盘弹起时,要让我们的UIScrollView自动收缩,以能看到整个UIScroll…

http://www.cocoachina.com/ios/20150703/12365.html

 

在涉及到表单输入的界面中,我们通常需要监听一些键盘事件,并根据实际需要来执行相应的操作。如,键盘弹起时,要让我们的UIScrollView自动收缩,以能看到整个UIScrollView的内容。为此,在UIWindow.h中定义了如下6个通知常量,来配合键盘在不同时间点的事件处理:

1
2
3
4
5
6
UIKeyboardWillShowNotification          // 键盘显示之前
UIKeyboardDidShowNotification           // 键盘显示完成后
UIKeyboardWillHideNotification          // 键盘隐藏之前
UIKeyboardDidHideNotification           // 键盘消息之后
UIKeyboardWillChangeFrameNotification   // 键盘大小改变之前
UIKeyboardDidChangeFrameNotification    // 键盘大小改变之后

这几个通知的object对象都是nil。而userInfo字典都包含了一些键盘的信息,主要是键盘的位置大小信息,我们可以通过使用以下的key来获取字典中对应的值:

1
2
3
4
5
6
7
8
// 键盘在动画开始前的frame
let UIKeyboardFrameBeginUserInfoKey: String
// 键盘在动画线束后的frame
let UIKeyboardFrameEndUserInfoKey: String
// 键盘的动画曲线
let UIKeyboardAnimationCurveUserInfoKey: String
// 键盘的动画时间
let UIKeyboardAnimationDurationUserInfoKey: String

在此,我感兴趣的是键盘事件的调用顺序和如何获取键盘的大小,以适当的调整视图的大小。

从定义的键盘通知的类型可以看到,实际上我们关注的是三个阶段的键盘的事件:显示、隐藏、大小改变。在此我们设定两个UITextField,它们的键盘类型不同:一个是普通键盘,一个是数字键盘。我们监听所有的键盘事件,并打印相关日志(在此就不贴代码了),直接看结果。

1) 当我们让textField1获取输入焦点时,打印的日志如下:

1
2
3
4
keyboard will change
keyboard will show
keyboard did change
keyboard did show

2) 在不隐藏键盘的情况下,让textField2获取焦点,打印的日志如下:

1
2
3
4
keyboard will change
keyboard will show
keyboard did change
keyboard did show

3) 再收起键盘,打印的日志如下:

1
2
3
4
keyboard will change
keyboard will hide
keyboard did change
keyboard did hide

从上面的日志可以看出,不管是键盘的显示还是隐藏,都会发送大小改变的通知,而且是在show和hide的对应事件之前。而在大小不同的键盘之间切换时,除了发送change事件外,还会发送show事件(不发送hide事件)。

另外还有两点需要注意的是:

  1. 如果是在两个大小相同的键盘之间切换,则不会发送任何消息

  2. 如果是普通键盘中类似于中英文键盘的切换,只要大小改变了,都会发送一组或多组与上面2)相同流程的消息

了解了事件的调用顺序,我们就可以根据自己的需要来决定在哪个消息处理方法中来执行操作。为此,我们需要获取一些有用的信息。这些信息是封装在通知的userInfo中,通过上面常量key来获取相关的值。通常我们关心的是UIKeyboardFrameEndUserInfoKey,来获取动画完成后,键盘的frame,以此来计算我们的scroll view的高度。另外,我们可能希望scroll view高度的变化也是通过动画来过渡的,此时UIKeyboardAnimationCurveUserInfoKey和UIKeyboardAnimationDurationUserInfoKey就有用了。

我们可以通过以下方式来获取这些值:

1
2
3
4
5
6
7
8
9
if let dict = notification.userInfo {
    var animationDuration: NSTimeInterval = 0
    var animationCurve: UIViewAnimationCurve = .EaseInOut
    var keyboardEndFrame: CGRect = CGRectZero
    dict[UIKeyboardAnimationCurveUserInfoKey]?.getValue(&animationCurve)
    dict[UIKeyboardAnimationDurationUserInfoKey]?.getValue(&animationDuration)
    dict[UIKeyboardFrameEndUserInfoKey]?.getValue(&keyboardEndFrame)
    ......
}

实际上,userInfo中还有另外三个值,只不过这几个值从iOS 3.2开始就已经废弃不用了。所以我们不用太关注。

最后说下表单。一个表单界面看着比较简单,但交互和UI总是能想出各种方法来让它变得复杂,而且其实里面设计到的细节还是很多的。像我们金融类的App,通常都会涉及到大量的表单输入,所以如何做好,还是需要花一番心思的。空闲时,打算总结一下,写一篇文章。

参考

  1. UIWindow Class Reference

转载于:https://www.cnblogs.com/itlover2013/p/4640469.html

http://www.lbrq.cn/news/1370305.html

相关文章:

  • 嘉兴做毛织的有哪些网站/百度公司在哪
  • 建设行业网站/小程序推广运营的公司
  • 徐州学习网站建设/班级优化大师官网登录
  • 搭建网站源码/最近的大新闻
  • 有很多长尾怎么做网站内容/苏州seo安严博客
  • 建设外贸网站多少钱/百度推广代理商赚钱吗
  • 昆明做网站建设的公司排名/成人教育机构排行前十名
  • 南平企业网站建设/爱站网关键词长尾挖掘
  • 滁州网站建设/关键词挖掘网站
  • 网页设计与网站建设过程/百度竞价什么意思
  • 东莞做微网站建设价格/网站友链查询源码
  • 做网站百度还是阿里巴巴好/站长之家ppt模板
  • wordpress单栏主题 极简/重庆seo哪个强
  • wordpress复制一个英文版/seo优化工作内容做什么
  • 外贸型网站方案/seo优化专员编辑
  • 微信网站怎样做/网站服务器是什么意思
  • 宿州大型网站建设公司/新闻热点大事件
  • 成都广告公司排行前十名/优化设计答案大全
  • 南宁网站建设_seo优化服务公司/百度有几个总部
  • 北京网站建设学习/2022最新小学生新闻
  • 近期军事新闻/站长工具seo综合查询烟雨楼
  • 创建app与网站的区别/免费网站流量
  • 网站建设用模板/百度一下网页首页
  • 做胃镜多少钱天津津门网站I/谷歌浏览器在线打开
  • 中国建设会计协会网站/厦门seo代理商
  • 深圳网站建设公司简介/百度热搜榜在哪里看
  • 中国菲律宾冲突岛屿/肇庆seo优化
  • 杭州网站建设杭州手机网站建设/百度指数官方版
  • 宝安网站建设深圳信科/网址提交入口
  • 做外销b2b网站对比/搜索引擎推广的三种方式
  • io_setup系统调用及示例
  • 如何在 Ubuntu 24.04 或 22.04 LTS Linux 上安装 Guake 终端应用程序
  • Python 字典为什么查询高效
  • Flutter镜像替换
  • 大模型微调与部署课程笔记
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(12):文法+单词