博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设置UITextView根据内容动态设置高度的简单方法,类似微信发朋友圈时的文本输入效果实现...
阅读量:4617 次
发布时间:2019-06-09

本文共 2264 字,大约阅读时间需要 7 分钟。

设置UITextView根据内容动态设置高度的简单方法

 

今天给大家介绍的是设置UITextView根据内容动态设置高度,我用的是SDLayout的布局方式,方法很简单可以根据自己的布局方式做修改,直接上代码:

- (void)textViewTextDidChangeNotiAction:(NSNotification *)obj{        UITextView *textView = (UITextView *)obj.object;    if(textView == self.contentTextView){                //获得textView的初始尺寸        CGFloat width = CGRectGetWidth(self.contentTextView.frame);        CGFloat height = CGRectGetHeight(self.contentTextView.frame);        //获取当前内容下的textView的尺寸        CGSize newSize = [self.contentTextView sizeThatFits:CGSizeMake(width,MAXFLOAT)];                CGRect newFrame = self.contentTextView.frame;               // newFrame.size = CGSizeMake(fmax(width, newSize.width), fmax(height, newSize.height));        newFrame.size = CGSizeMake(newSize.width, newSize.height);                LYLog(@"新高度:%f",newFrame.size.height);                //self.contentTextView.frame = newFrame;                self.contentTextView.sd_resetLayout        .topSpaceToView(self, 10.f)        .leftSpaceToView(self, 15.f)        .rightSpaceToView(self, 15.f)        .heightIs(newFrame.size.height);                self.textNumLabel.sd_resetLayout        .topSpaceToView(self.contentTextView,5.f)        .rightSpaceToView(self, 15.f)        .widthIs(100.f)        .heightIs(20.f);        [self.contentTextView updateLayout];        self.inputText = self.contentTextView.text;        if([self.contentTextView.text isEqualToString:@"这一刻的想法"]){            self.inputText = @"";        }else {                        if(self.contentTextView.text.length > 500){                [self.contentTextView endEditing:YES];                                [MBProgressHUD showText:@"内容不能超过500个字" toView:nil];                                self.inputText = [self.contentTextView.text substringToIndex:500];                self.contentTextView.text = self.inputText;            }        }                self.textNumLabel.text = [NSString stringWithFormat:@"%lu/%lu",(unsigned long)self.inputText.length,500 - self.inputText.length];                [self updateInputText];                LYLog(@"输入的内容:%@",self.contentTextView.text);    }        [self setupAutoHeightWithBottomView:self.textNumLabel bottomMargin:10.f];}

 效果如下图:

图一

图二

 

转载于:https://www.cnblogs.com/Rong-Shengcom/p/9268651.html

你可能感兴趣的文章
CentOS7 搭建gitlab服务器
查看>>
CSS控制文字,超出部分显示省略号
查看>>
NSMutableAttributedString实现富文本 (实现不同颜色和字体、下划线)
查看>>
贝叶斯规则
查看>>
解决Centos/Redhat,命令不存在
查看>>
项目实战—小饭桌
查看>>
ubuntu服务器版相关命令
查看>>
gdb
查看>>
flask下载zip文件报错TypeError
查看>>
彻底弄懂js循环中的闭包问题
查看>>
python测试开发django-24.表单提交之get请求
查看>>
帧动画布局文件 animation-list
查看>>
api接口通信安全性
查看>>
我想做个程序员:一位编程小白的App开发故事
查看>>
云服务器(uCloud)部署java web项目(四) apache转发请求到tomcat
查看>>
zoj 3165 (最小割,最大点权独立集)
查看>>
ArrayList深拷贝的一种实现方法
查看>>
2012考研英语--前辈的高分复习经验
查看>>
UVA10603倒水问题+隐式图搜索
查看>>
C++学习之字符串
查看>>