#import "ViewController.h"
@interface ViewController ()<UITextViewDelegate>{
UITextView *_textView;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//创建文本视图
_textView = [[UITextView alloc] initWithFrame:CGRectMake(60, 100, 200, 100)];
//文本视图显示的文字
_textView.text = @"简单创建textView";
//文本视图的字体格式和大小
_textView.font = [UIFont fontWithName:@"Arial" size:16];
//设置文本视图的文本颜色
_textView.textColor = [UIColor yellowColor];
//设置背景颜色
_textView.backgroundColor = [UIColor lightGrayColor];
//设置代理
_textView.delegate = self;
//设置文本视图是否可以进行输入
_textView.editable = YES;
//添加到视图上
[self.view addSubview:_textView];
//添加单击手势回收键盘
UITapGestureRecognizer *singleRecognizer;
singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapFrom)];
singleRecognizer.numberOfTapsRequired = 1;
[self.view addGestureRecognizer:singleRecognizer];
}
#pragma mark - UITextViewDelegate
//将要开始编辑的时候调用
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{
NSLog(@"将要开始编辑");
return YES;
}
//将要结束编辑的时候调用
- (BOOL)textViewShouldEndEditing:(UITextView *)textView{
NSLog(@"将要结束编辑");
return YES;
}
//已经开始编辑的时候调用
- (void)textViewDidBeginEditing:(UITextView *)textView{
NSLog(@"已经开始编辑");
}
//已经结束辩解的时候调用
- (void)textViewDidEndEditing:(UITextView *)textView{
NSLog(@"已经结束编辑");
}
/*range包含文本改变的起始地址和长度.
text包含的是改变的是内容,例如进行删除操作,那么text则为空;进行输入,text则为输入的内容*/
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if ([text isEqualToString:@"x"])
NSLog(@"输入了x");
return YES;
}
//当文本视图的文本发生改变的时候调用
- (void)textViewDidChange:(UITextView *)textView{
NSLog(@"文本改变了");
}
//光标位置发生改变的时候调用
- (void)textViewDidChangeSelection:(UITextView *)textView{
NSLog(@"光标移动了");
}
//收回键盘
- (void)handleSingleTapFrom{
[_textView resignFirstResponder];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
以下是UITextView(文本视图)和UITextField(文本框)的继承顺序:
UITextView -> UIScrollView -> UIView -> UIResponder -> NSObject
UITextField -> UIControl -> UIView -> UIResponder -> NSObject
文本视图和文本框的区别还是很大的,例如文本框不能够进行换行,但是文本视图可以,并可以滚动浏览文本内容。
进行iOS开发中UI学习是非常简单的,UI控件的学习不涉及诸多的逻辑问题,所以还是简单易学的。