最近因为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 开发工程师? 准确地说,我 ...
随机推荐
- TelerikUI_RadGrid_Filter 自定义方法
要设置 EnableLinqExpressions="false",搞了3,4个小时没反应,就是没有设置这个 Protected Sub btnSearch_Click(sende ...
- Spring中的WebDataBinder浅析
Spring可以自动封装Bean,也就是说可以前台通过SpringMVC传递过来的属性值会自动对应到对象中的属性并封装成javaBean,但是只能是基本数据类型(int,String等).如果传递过来 ...
- hdu1054 树状dp
B - 树形dp Crawling in process... Crawling failed Time Limit:2000MS Memory Limit:10000KB 64bit ...
- Jlink仿真器下载程序时出现Invalid ROM table!
原因:仿真器时钟设置不对,应该将时间改低一点.
- 一句SQL实现MYSQL的递归查询
众所周知,目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的.这个得益于Mysql允许在SQL语句内使用@变量.以下是示例代码. 创建 ...
- PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr
PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep ...
- django删除migrations
先把migrations文件夹里面的数据删除. 删除数据库中关联的表 删除django_migrations里面关联的数据(因为在migrate的时候发现django_migrations表有相关数据 ...
- mysql在关闭时的几个阶段
mysql关闭的大致过程 1.The shutdown process is initiated 初始化关机过程有许多种方法1.mysqladmin shutdown ; 2.kill pid_of_ ...
- 函数式C代码
代码如下: #include <stdlib.h> #include <stdio.h> typedef ]; typedef FILE* File; typedef stru ...
- GetSystemTime API可以得到毫秒级时间
用Now返回的日期格式中年只有2位,即2000年显示为00, 这似乎不太令人满意. 此外Now和Time都只能获得精确到秒的时间,为了得到更精确的毫秒级时间,可以使用API函数GetSystemTim ...