最近因为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 开发工程师? 准确地说,我 ...
随机推荐
- OD学习笔记10:一个VB程序的加密和解密思路
前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路. Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程 ...
- sql 合并列
1.合并一列用“ ,”号隔开. 如下图: 这样的一列我想直接在sql里面合并最后变成:586,444,444,444,444这样的效果,平常的做法是直接把这列数据取出来,在前端循环加上逗号,但其实是可 ...
- Mysql常用命令记录
-- 导出数据库: mysqldump -u user_name -p database_name > import_file.sql -- 执行脚本 source database.sql
- POJ 1743 - Musical Theme 最长不重叠重复子串
题意: 给出一列数据,问你其中重复的最长连续子串的长度 但是有要求: 1. 长度至少为 5 . 2. 两串可以不相等,但两串每个对应位置的数字相减差值固定 (即 ...
- libtcmalloc 简单使用
下载地址: https://github.com/gperftools/gperftools这个编译很简单,直接进入vsprojects\libtcmalloc_minimal,用vc编译即可,整个过 ...
- #能力开放平台系列-Fiddler访问Rest服务
问题 最近开发能力开放平台,需要将Dubbo服务转换成Rest服务,虽然转换很成功(后续文档会写出如何将Dubbo服务转换成Rest接口),但是调试起来特别的麻烦. 解决方案: Fiddler解决方案 ...
- jQuery proxy详解
第一次接触jQuery.proxy()时感觉这个方法不实用,不明白它到底是个什么意思.今天来将jQuery官网上的解释进行一下翻译,顺便添加自己的理解和一些示例.proxy也可称为代理. jQuery ...
- 修补--Redis未授权访问漏洞
--------------------------------阿里云解决方案----------------------------------- 一.漏洞描述 Redis因配置不当可以导致未授权访 ...
- Manasa and Stones
from __future__ import print_function def main(): t = int(raw_input()) for _ in range(t): n = int(ra ...
- spark提交任务的流程
1.spark提交流程 sparkContext其实是与一个集群建立一个链接,当你停掉它之后 就会和集群断开链接,则属于这个资源的Excutor就会释放掉了,Driver 向Master申请资源,Ma ...