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

ios自定义控件,使UIScrollView自己处理输入时键盘遮挡控件

  在开发过程中,如一个页面有许多的输入控件,UITextFieldUITextView。编码的时候就要考虑控件获得焦点后,键盘是否会把这个控件遮挡,就得操作UIScrollView的滚动条位置。

    我开发了UIAutoScrollView类,它能自动处理键盘遮挡问题,达到了一劳永逸的效果!

  

  

    1.如果是xib的方式使用这个类,不需要调用这个addAutoScrollAbility方法,我在awakeFromNib方法里调用了。 xib中使用时,先在xib中拖入一个UIScrollView,然后再把它的class属性设置为 UIAutoScrollView

    2.如我在Demo 中的CodeScrollTestViewController中用UIAutoScrollView。必须设置UIAutoScrollViewcontentSize,在加完UIAutoScrollView的所有子控件的后,最后再调用下addAutoScrollAbility方法,这个顺序不能变。

    3.如我在Demo 中的CodeScrollTestViewController中用UIAutoScrollView。在viewDidLoad中设置了self.view.frame=CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-self.navigationController.navigationBar.frame.size.height-[UIApplication sharedApplication].statusBarFrame.size.height);     这里必须设置下viewframe,原因是这时候view的高度已经超出了手机屏幕。超出了navigationBarstatusBar的高度如果不这样设置后面的代码设置UIAutoScrollViewframe等于viewframe的时候,会造成UIAutoScrollView超出手机屏幕,这样在UIAutoScrollView内部计算的时候会出bug.

   Demo下载地址: https://github.com/lqCoder/UIAutoScrollView

转载于:https://www.cnblogs.com/learnWindowsPhone/p/5078170.html

相关文章:

  • 算法学习笔记——动态规划法
  • js 自定义方法 实现停留几秒 sleep
  • Global Azure SQL Server Database异地复制配置介绍
  • 练习JavaScript实现过滤特殊字符
  • jQuery Mobile_页面事件
  • struts2遍历map
  • java基础tips
  • 第一章 Java常用集合类总览
  • 判定ftp上传的脚本
  • 学习shell script中
  • 腾讯云内网DNS的配置
  • SCCM部署心得
  • DirectShow基础编程 最简单transform filter 编写步骤
  • HTML5的sessionStorage和localStorage
  • 上云科技 C++ 软件工程师笔试题目
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Date型的使用
  • in typeof instanceof ===这些运算符有什么作用
  • Less 日常用法
  • mysql中InnoDB引擎中页的概念
  • Python语法速览与机器学习开发环境搭建
  • Spring框架之我见(三)——IOC、AOP
  • Vue.js 移动端适配之 vw 解决方案
  • 半理解系列--Promise的进化史
  • 大快搜索数据爬虫技术实例安装教学篇
  • 计算机常识 - 收藏集 - 掘金
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 实战|智能家居行业移动应用性能分析
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 阿里云重庆大学大数据训练营落地分享
  • ​插件化DPI在商用WIFI中的价值
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • %@ page import=%的用法
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二)springcloud实战之config配置中心
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (十三)Flask之特殊装饰器详解
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • .Net 8.0 新的变化
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [20170705]diff比较执行结果的内容.txt
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [BZOJ4010]菜肴制作