iOS UItableviewCell实现可变高度的UITextView,动态刷新高度

下午,一个朋友问了一个问题,关于UITableView的,大概意思就是,他想在UITableView的Cell中实现UITextView在用户的输入过程中的高度动态更新。

关于高度自增长UITextView这个实现很简单,网上也有很多小例子,问题是,每次UITextView换行的时候,cell的高度也需要动态变化,这时候,代码直接修改了Model 的高度,但是:问题来了,修改了Model的高度之后,怎么搞定UITableViewCell的刷新,你要是说,简单啊,直接调用TableView的reload方法,恭喜你!中奖了,确实是刷新了Cell的高度,问题是,因为键盘被resign,所以,键盘被收下去了,用户输入过程换行导致了键盘被收起来,想继续编辑还得点一下UITextView重新调出键盘,这不是被产品狗叼到死的节奏吗!

那么解决方法是什么呢?很简单,你在UITextView的换行Block代码中加入一句,reload你在编辑的那个Cell的row行数的row+1特定的那一行,而不是整个UItableView都reload就行了,这样即刷新了cell的高度,也不会导致键盘被收下去,恩恩,完美解决!

时间: 2024-09-30 03:15:25

iOS UItableviewCell实现可变高度的UITextView,动态刷新高度的相关文章

iOS -- UITableViewCell -- 通过代码自定义Cell(cell的高度不一致)

1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 Ø添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中) Ø进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片) 3.提供2个模型 Ø数据模型: 存放文字数据\图片数据 Øframe模型: 存放数据模型\所有子控件的frame\cell的高度 4.cell拥有一个frame模型(不要直接拥有数据

iOS UITextView自适应高度UITextContainerView抖动问题

在打造一个类似于微信朋友圈评论输入框的时候,需要动态调整输入框的高度, 但是,在调整了UITextView的高度之后,继续输入会导致内容(UITextContainerView里的文字)抖动. scrollRangeToVisible 方法解决了我的问题(Swift 3): textView.scrollRangeToVisible(NSRange.init(location: 0, length: 0)) 获取UITextView内的文字高度以及行数的方法(Swift 3): let heig

iOS开发项目篇—28自定义UITextView

iOS开发项目篇—28自定义UITextView 一.简单说明 1.要实现的效果 2.分析 (1)UITextField 1.最多只能输入一行文字 2.能设置提醒文字(placehoder) 3.不具备滚动功能 (2)UITextView 1.能输入N行文字(N>0) 2.不能设置提醒文字(没有placehoder属性) 3.具备滚动功能 需求:技能输入多行文字,又具备文字提醒功能. 这里选择自定义一个类,让其继承自UITextView类,为其添加一个设置文字提醒的功能. 二.实现 自定义UI控

ios开发之根据内容行数调整cell 高度,与label高度

设置cell高度 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NoticeMessage* msg = [arrayNoticeMessage objectAtIndex:indexPath.section];//取出对应的section或者cell UIFont *msgFont = [UIFont fontWithName:@"arial&qu

iOS 根据文本内容为TextView动态定义高度

解决方案: 1.定义一个textview,在storyboard中设定该textview的constraints. 2.将高度的constraint定义到头文件中:(直接拖拽) @property (weak, nonatomic) IBOutlet NSLayoutConstraint *textviewHeightConstraint; 3.待在实现文件中为textview加载了内容之后,获取文本高度,为该constraint赋值: CGSize sizeThatShouldFitTheCo

iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ②)

距上一篇博客"APP引导页的高度集成 - DHGuidePageHUD - ①"的发布有一段时间了, 后来又在SDK中补充了一些新的内容进去但是一直没来得及跟大家分享, 今天来跟大家分享一下, 还是一行代码搞定APP引导页, 废话不多说直接进入主题! 如果还没来得及看上一篇博客的话, 请大家点击这里进入: iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ①) ????; (一)老规矩先上GitHub连接,给大家节省时间(分享是一种美德,S

iOS UITableViewCell UITableVIewController 纯代码开发

iOS UITableViewCell UITableVIewController 纯代码开发 <原创> 1.纯代码 自定义UITableViewCell 直接上代码 ////// #import <UIKit/UIKit.h> @interface CodeTableViewCell : UITableViewCell @property (nonatomic, weak) UIImageView *iconView; @property (nonatomic, weak) UI

IOS 控件 - UITableView 中的cell 自适应高度

当 UITableView 中有一个 label 的内容比较长的时候,就需要 cell 自适应高度来多行展示label: 首先设置 label 的 line 为0: 代码如下: // 为每一个 cell 预设置一个高度,可以提高效率 - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath { return 44; } // 这里每一个 cell

完美实现控制DIV最小高度和DIV自适高度

本文和大家重点讨论一下如何控制DIV最小高度又DIV自适高度问题,如果我们需要设置一个div高度,当里面的东西超过这个高度时,让这个容器自动被撑开,也就是DIV自适应高度.当里面的信息很少时候,我们就设置它一个最小的固定高度. 如何控制DIV最小高度又DIV自适高度 我们在用div布局的时候经常会遇到这样的一种情况:我们需要设置一个DIV高度,当里面的东西超过这个高度时,让这个容器自动被撑开,也就是DIV自适应高度.当里面的信息很少时候,我们就设置它一个最小的固定高度. 我们知道,在IE6中,如