首页 > 其他分享 >iOS开发:个人对于textView基础用法的总结(其一)

iOS开发:个人对于textView基础用法的总结(其一)

时间:2022-10-21 18:05:47浏览次数:79  
标签:UITextView text self iOS 用法 设置 label textView

前言

从事了这么久ios开发,对于textView的使用并不陌生,它和textfield有相似的地方,也有不同的地方,这里只对textView的一些基础用法进行描述,textfield不在这里描述。


一、基础用法

在.h文件中声明:

@interface ProtocolViewController :UIViewController<UITextViewDelegate>
{
UITextView *textView;
}

@property (nonatomic,retain)UITextView *textView;

@end


在.m中初始化:

- (void)init{
//UITextView(使用须遵守UITextViewDelegate协议)
self.textView = [UITextView new]; 或者 self.textView = [[UITextView alloc] init];

self.textView.frame = CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 60);

//设置它的委托方法
self.textView.delegate = self;

//设置是否可以编辑
self.textView.editable = YES;

//设置显示内容
self.textView.text = @"请输入密码";

//设置textview里面的字体颜色
self.textView.textColor = [UIColor blackColor];

//设置文字对齐方式
self.textView.textAlignment = NSTextAlignmentLeft;


//设置字体大小
self.textView.font = [UIFont systemFontOfSize:25.0];

//设置字体名字和字体大小
self.textView.font = [UIFont fontWithName:@"Arial"size:18.0];

//设置边框属性
self.textView.layer.cornerRadius = 10; //边框弧度
self.textView.borderColor = [UIColor darkGrayColor].CGColor; //设置边框颜色
self.textView.layer.borderWidth = 2; //边框宽度


设置是否可以滚动
//UITextView继承于UIScrollView
self.textView.scrollEnabled = NO;

//消除影响(iOS7 如果把UIscrollView 加在导航中一般内容会向下走64)
self.automaticallyAdjustsScrollViewInsets = NO;

//设置背景颜色
self.textView.backgroundColor = [UIColor whiteColor];

//UITextView下的键盘中return 表示换行
//返回键的类型
self.textView.returnKeyType = UIReturnKeyDefault;

//键盘类型
self.textView.keyboardType = UIKeyboardTypeDefault;

//自适应高度
self.textView.autoresizingMask = UIViewAutoresizingFlexibleHeight;

[self.view addSubview: self.textView];//加入到整个页面中
}


二、协议

#pragma mark - UITextViewDelegate协议中的方法

//将要进入编辑模式
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {return YES;}


//已经进入编辑模式
- (void)textViewDidBeginEditing:(UITextView *)textView {}


//将要结束/退出编辑模式
- (BOOL)textViewShouldEndEditing:(UITextView *)textView {return YES;}


//已经结束/退出编辑模式
- (void)textViewDidEndEditing:(UITextView *)textView {}


//当textView的内容发生改变的时候调用的方法
- (void)textViewDidChange:(UITextView *)textView {}


//选中textView 或者输入内容的时候调用的方法
- (void)textViewDidChangeSelection:(UITextView *)textView {}


//从键盘上将要输入到textView的时候调用的方法
//text 将要输入的内容
//返回YES可以输入内容到textView中,返回NO则不能
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {return YES;}


三、UITextView内容添加之后,让其自动滚到到最后一行(解决UITextView展示文字不展示第一行的问题)

用scrollRangeToVisible函数进行滑动,可以跳动到最后一行内容上面:[self.textView scrollRangeToVisible:NSMakeRange(self.textView.text.length, 1)];

但是上面的这样设置效果不好。因为重新设置了内容,导致每次都要从顶部跳到最后一行,界面很闪,用户体验非常不好,那么最后的解决方案如下:

self.textView.layoutManager.allowsNonContiguousLayout = NO;

UITextView 中的 layoutManager(NSLayoutManager) 的是否非连续布局属性,系统默认是YES,把它设置为NO后 ,UITextView 就不会再自己重置滑动了。


四、给UITextView添加默认文字(占位文字)

UITextView的初始化和基本设置不在重述,只写关键步骤。

//在UITextView上面覆盖一个UILabel,UILabel设置成全局变量(UILabel的声明、初始化、基本设置也不在描述)

self.label.frame = CGRectMake(5, 8,[UIScreen mainScreen].bounds.size.width-16, 20); // UILabel的坐标要和UITextView的坐标根据实际情况相结合

self.label.text = @"填充文字"; //设置占位文字

self.label.enabled = NO; //label必须设置为不可用

self.label.backgroundColor = [UIColor clearColor]; //设置背景颜色为透明色

[self.view addSubview: self.label];//加入到整个页面中


实现UITextView的代理方法

- (void)textViewDidChange:(UITextView *)textView {

self.examineText = textView.text;

if(textView.text.length == 0) { //根据label的长度判断是否展示填充文字

self.label.text = @"填充文字";

}else {

self.label.text = @"";

}

}

最后

以上就是在iOS开发中个人对于textView基础用法总结的知识点,由于是常用的知识点,所以没有涵盖所有的属性,没有涉及到的属性请读者自行查阅官方API,这里就不再赘述。以上就是本章全部内容,欢迎关注三掌柜的微信公众号“程序猿by三掌柜”,三掌柜的新浪微博“三掌柜666”,欢迎关注!


标签:UITextView,text,self,iOS,用法,设置,label,textView
From: https://blog.51cto.com/u_15440725/5784393

相关文章

  • linux 查看网卡型号(grep -A 1 用法)
    需要grep-A1显示多一行,否则显示一行只能看到芯片组型号lspci-v|grepEthernet-A13b:00.0Ethernetcontroller:MellanoxTechnologiesMT27800Family[Connect......
  • vue中执行异步函数async和await的用法
    一、async基础用法async函数,会返回一个promise对象,可以用.then调用async函数中return的结果asyncfunctionhelloAsync(){return"返回结果";}con......
  • axios基本用法
    什么是AxiosAxios本质上还是对原生XMLHttpRequest的封装,可用于浏览器和nodejs的HTTP客户端,只不过它是基于Promise的,符合最新的ES规范。一.axios的三种写法//第一种写......
  • Nagios配置
    其实上篇Nogios安装只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子。接下来,我们来学习研究一......
  • Nagios配置文件nagios.cfg详解
    这里开始要讲一些Nagios的配置。首先要看看目前Nagios的主配置路径下有哪些文件。[root@nagiosetc]#ll总用量152-rwxrwxr-x.1nagiosnagios18259月2414:40cgi.cf......
  • Java语言深入:深入研究Java equals方法,equals,==,equals用法
    网上关于equals和==的区别的讨论巨多这里先简单分析下他们的区别吧:equals方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等......
  • 反编译工具jad简单用法
      反编译工具jad简单用法  以下假设jad.exe在c:/java目录下一、基本用法Usage:   jad[option(s)]<filename(s)>直接输入类文件名,且支持通配符,如下所示。c:/ja......
  • Oracle LISTAGG() 聚合查询用法 GROUP BY 和 PARTITION BY 的使用和比较
    基本语法:LISTAGG(XXX,XXX)WITHINGROUP(ORDERBYXXX)。可以配合GROUPBY进行聚合查询,也可以配合PARTITIONBY进行聚合查询。直接上例子。TEST_USER表记录如下......
  • 关于js中window.location.href,location.href,parent.location.href,top.location.hre
      关于js中"window.location.href"、"location.href"、"parent.location.href"、"top.location.href"的用法   "window.location.href"、"location.href"是本页面跳转......
  • expect用法
    expect用法(实例讲解)ly_qiu于2020-04-2522:31:04发布4561收藏12分类专栏:shell版权shell专栏收录该内容16篇文章1订阅订阅专栏expect用法expect 自动应答命令(用......