最近因为textview高度问题疯了疯了疯了
1.textview有\r\n什么的就算不明白,我的文本最后一个字符是\r,结果我死活算不对,最后发现了==!
NSString * str = [_messageModels[indexPath.row].text stringByReplacingOccurrencesOfString:@"\r" withString:@""];
2.textview用sizeThatFits算比较准确
3.textview加事件之前写了
4.高度自适应,需求是写三行以内撑高,三行以上变成滚动
=====重点是三行以内要把滚动关掉要不然自己去自适应了总是上下不平均而且还是偶现
=====用sizeThatFits算比较准确,用contentSize不准,网上说准但是我没用好可能我的用法有问题
=====跳出@人员列表,结果回来他就不自己添加@这个字符了,我就手动加上去了,很奇怪,明明return YES了。
-(void)textViewDidChange:(UITextView *)textView{
if (textView.text.length>0) {
self.placehoderLabel.hidden = YES;
}else{
self.placehoderLabel.hidden = NO;
}
CGSize size = [textView sizeThatFits:CGSizeMake(textView.frame.size.width, 1000)];
if (size.height>85) {
self.txtMessageBox.scrollEnabled = YES;
return;
}
self.txtMessageBox.scrollEnabled = NO;
if(_delegate)
[_delegate changeInputViewHeight:size.height+15];我是外部调用的把它撑开
}
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if ([text isEqualToString:@"@"]) {
self.txtMessageBox.text = [self.txtMessageBox.text stringByAppendingString:@"@"];
self.placehoderLabel.hidden = YES;
AllMembersViewController * allvc = [[AllMembersViewController alloc]init];
allvc.roomId = [self.roomId longLongValue];
allvc.delegate = self;
_isAddRemindView = YES;
[self presentViewController:allvc animated:YES completion:nil];
}
if ([text isEqualToString:@"\n"]) {
if (textView.text&&[[textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length]>0) {
if(_delegate) {
[_delegate sendTextMessage:[textView text]withRemind:self.remindArray];
}
[textView setText:@""];
[self.remindArray removeAllObjects];
self.placehoderLabel.hidden = NO;
[self textViewDidChange:self.txtMessageBox];
[self setTextDraft];
}
return NO;
}
return YES;
}
5.未完待续。。。。。
最近因为textview高度问题疯了疯了疯了的更多相关文章
- 字符串判断设置TextView高度
问题:项目中需要根据字符串的长度判断Textview的高度 一.如果全是英文的也比较容易,根据长度判断从而设置mTextView的高度就好. double temp = str.length(); ...
- 解决安卓TextView高度和textSize大小不一致问题
在设计安卓界面的时候我发现一个TextView在布局上占用的高度和属性textSize的大小不一样,要比textSize要来的大(比如textSize="12dp",实际的高度大概 ...
- textView截取字符串-医生工作台1期
textfield截取字符串 ios7 会崩溃 解: 之前的写法是这样的 正确的写法: 先判断markedTextRange是否为nil, markedTextRange这个属性是啥意思呢 表 ...
- uitableviewcell高度自适应笔记
今天看了几篇uitableviewcell高度自适应的文章,大体分为两种方式. 第一种方式,cell里面有label,在cellforrow绘制的时候计算Label的可能高度,并且在此时重新计算cel ...
- 【转】UILabel、UITextView自适应得到高度
原文:http://blog.csdn.net/xcysuccess3/article/details/8331549 在iOS中,经常遇到需要根据字符串的内容动态指定UILabel,UITextVi ...
- swift textView内容显示不全
背景: 意见反馈页面有一行提示文字,包含客服QQ,要求qq可点击.为了实现点击功能,这里的文本没有使用UILabel,而是采用了UITextView,使用textView的链接功能. 问题: 设置te ...
- C 最熟悉的陌生人 (纪念当年就读的梅州市江南高级中学)
最熟悉的陌生人 作者:张慧桥 “枪与玫瑰” 我送走了“蝶恋花”,犹有一种身在梦中的感觉,昨晚的宿醉让我只觉得头晕乎乎的很不舒服,想想自己连澡都还没洗呢,便去洗了个冷水澡. 煮了杯浓浓的咖啡喝了下去,我 ...
- [转]iOS7中UITextView contentsize改变时机
在iOS7以下版本中,对UITextView设置了text属性,则contentsize就会变化,从而可以根据contentsize的变化来改变UITextView高度来做出TextView高度随着输 ...
- 在 2016 年学 JavaScript 是一种什么样的体验?
转 译者:方应杭 嘿,我最近接到一个 Web 项目,不过老实说,我这两年没怎么接触 Web 编程,听说 Web 技术已经发生了一些变化.听说你是这里对新技术最了解的 Web 开发工程师? 准确地说,我 ...
随机推荐
- First 5 minutes of SQLite
What is SQLite? SQLite is light-weight RDBMS, it is use the file system rather than the C/S client, ...
- 将实体转成XML,XML节点顺序由我控制
一.前言 由于有时候返回xml格式比较严格,需要按照一定的顺序排列节点才能够符合要求,这里主要用到了自定义一个List<string> 字符顺序,再让实体属性按照List定义好的顺序重新排 ...
- Java如何获取当前的jar包路径以及如何读取jar包中的资源
写作业的时候要输出一个record.dat文件到jar包的同级目录,但是不知道怎么定位jar包的路径.百度到的方法不很靠谱,所以在这里记录一下. 一:使用类路径 String path = this. ...
- 关于bootStrapdialog 学习心得
在用play这个框架做项目的时候,我们的背景以及一些插件用的都是 bootStrap3.0的JS以及CSS 这次用到的bootStrapdialog 所需要演示的效果 就是 在一个网页系统里, 当你 ...
- Block(一)基础-备
一.概述 Block是C级别的语法和运行时特性.Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存.堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block ...
- Shell脚本调试技术
http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ 一. 前言 shell编程在unix/linux世界中使用得非常广泛,熟练掌握 ...
- adnroid 监听收到的短信并根据短信内容进行回复短信
定义一个广播接收器 public class SMSReceiver extends BroadcastReceiver { private SmsManager smsManager; @Overr ...
- 采购术语PR、PO、RFQ、RFI、SOW、BOM、JIT、VMI、MRO 是什么意思
PO:Purchase Order Form 采购订单,公司对外使用,还有个PR: ,公司内部使用的采购申请单 PR (Purchase Requirent) 请购单,采购申请单,代表企业内部的申请需 ...
- 批量删除Kindle Personal Documents
javascript:(function(){ var v = new RegExp("amazon"); if (!v.test(document.URL)) { return ...
- C++函数后面加const修饰
声明一个成员函数的时候用const关键字是用来说明这个函数是 "只读(read-only)"函数,也就是说明这个函数不会修改任何数据成员(object). 为了声明一个const成 ...