关于如何自定义一个 文本输入框(UITextView) 的思想以及整个操作流程
来源:互联网 发布:c语言运算符号意义大全 编辑:程序博客网 时间:2024/06/06 01:19
随口
怎么去学一个新的类,看他继承谁,看他的属性都有什么作用,隐藏属性是什么。
每更新一个Xcode 就会有新的知识,研究一个自己的一套学习方法,多思考,类的属性在哪里可以用到
合格的自定义控件只需要外部给你数据就可以来,不需要关心你内部是怎么实现的。
1. 文本输入框有哪些选择 为什么要选择继承UITextView
用油文本输入功能的目前有UITextField 和 UITextView ,总结一下两个控件的特点,UITextView 换行比较方便,占位符可以自定义。
2.作为一个自定义控件应该考虑的情况是哪些?
1.>给别人提供什么借口,别人使用你这个控件时会使用的方法和属性
2.>当别人使用你控件属性时,应该直接改变控件属性值,重写 属性set 方法。
3.>使用控件父类属性时,不会调用重绘方法。出现文字重叠现象,所以需要重写 父类一些属性的set方法,比如text,font;
3.控件的使用注意事项?
1.>监听控件行为时,注意不要让 控件的代理是它自己<self.delegate = self>,这句话随时可以当外部调用delegate时,内部空间的代理就挂掉了;
另外,使用代理对象是自己,这个设计本身不合理。
2.> 需要知道 [self setNeedsDisplay] 方法是做什么的, 会调用 - (void)drawRect:(CGRect)rect 方法重绘
4.自定义文本输入框控件的完整流程。
1.>提供给外部可以改变自己占位符的文字属性 和占位符颜色的属性 字体可以使用外部字体大小
2.> 使用 画图 将占位符文字画出来 ,注意这里需要判断 文本框上面是否 有文字,,可以根据 UITextView.hasText 属性 和 self.text.length
使用 drawInRect: withAttributes: 方法 将 文字输入范围限制在一定范围内
self.font 需要一个默认字体,跟color一样
4.>重写属性set 方法,在外部改变控件属性时,应该第一时间改变自身属性值;重写set 方法 注意要重新调用一次 绘图方法
5.>当调用控件父类属性时,不会出现重绘方法,所以 我们需要重写 父类的一些属性 set方法
4.注意事项
1.>[self setNeedsDisplay] 会在下一次消息循环中调用 - (void)drawRect:(CGRect)rect 方法,重复多次调用是没有用的。每消息循环一次,才会调用一次。
NSRunLoop 消息循环
2.>通知需要移除
- 关于如何自定义一个 文本输入框(UITextView) 的思想以及整个操作流程
- UITextField、UITextView--文本输入框,以及文本输入域
- UITextView文本输入限定的处理
- iOS-UITextView-文本输入视图的使用
- Swift 多文本输入框UITextView
- UITextView 限制输入文本长度
- 自定义带提示的文本输入框
- 富文本编辑器中如何让一个Div变成像输入框一样可输入的?
- iOS SDk:创建一个自定义文本输入框
- iOS SDK:创建一个自定义文本输入框
- iOS SDK:创建一个自定义文本输入框
- 关于如何在UITextView等添加输入提示(placeholder)
- git 操作总结(整个工作流程)
- 关于如何限制EditText输入的文本行数为1
- Swift - 多行文本输入框(UITextView)的用法
- 如何设置文本输入框的高度?
- 如何实施一个医院软件系统项目的整个流程和注意事项
- 关于如何使用eclipse创建web项目——整个流程的概述
- Java 八大排序之——快速排序
- JDBC-ecplise连接MySql数据库
- 敏捷开发之Scrum
- MySQL简单的备份还原
- USACO 1.4.3 等差数列
- 关于如何自定义一个 文本输入框(UITextView) 的思想以及整个操作流程
- Java 八大排序之——归并排序
- java--通过sax方式解析xml文件的简单实例
- HDU 4770 Lights Against Dudely(二进制枚举子集)
- 动态规划算法典型问题
- ocp-462
- ocp-463
- ocp-464
- ocp-465