UILabel
- 初始化
1 | UILabel *label = [[UILabel alloc] init]; |
- 基本属性
1 | // frame设置 |
- 设置文本对其方式
1 | @property(nonatomic) NSTextAlignment textAlignment; |
NSTextAlignmentNatural 默认方式; ios 9 之前是NSTextAlignmentLeft(左对齐)
// default is NSTextAlignmentNatural (before iOS 9, the default was NSTextAlignmentLeft)
1 | NSTextAlignmentLeft : 左对齐 |
- 行数设置
1 | @property(nonatomic) NSInteger numberOfLines; |
UITextview
UITextview
的部分基础属性设置跟UILabel
差不多
1 | @property(null_resettable,nonatomic,copy) NSString *text; |
- UITextViewDelegate
1 | // 将要开始编辑 |
- 退出键盘
因为UITextview是一个文本编辑控件在编辑时键盘是自动跳出显示的,然而在编辑完成时键盘却不会自动跳出需要手动设置方法让键盘消失。
在模拟器运行中有可能出现点击UITextView后出现光标但为跳出模拟器键盘,使用电脑键盘可以输入。要使用模拟器自带键盘可以通过
Shift + Command + K
设置
- 1.如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实现UITextViewDelegate。
1 | // 添加导航栏按钮 |
- 如果你的textview里不用回车键,可以把
return
键当做退出键盘的响应键
1 | -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text |
- 点击textview外的空白视图退出键盘(一般是当前的视图)
1 | - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event |
- NSNotification-通知
1 | UIKIT_EXTERN NSNotificationName const UITextViewTextDidBeginEditingNotification; //开始编辑时发送通知 |
UITextField
UITextField
的用法基本与UITextview
相同.UITextField
也有自己的代理方法UITextFieldDelegate
区别:
UITextField: 只能输入一行,不可以滚动,可以设置提醒文字。
UITextView: 能输入多行,可以滚动,不可以设置提醒文字。
该三个控件都具有文本显示的作用
UILabel:显示的只读文本无法编辑,可以根据文字内容自动换行
UITextView
:可编辑文本内容,也可进行换行。UITextField
:可编辑文本但无法换行,只能显示一行。