UITabelView中cell的高度根据里面UITextView的内容自适应高度

本文介绍如何在iOS开发中实现UITableView的cell高度根据内部的UITextView内容自适应。关键点包括设置textView的Autolayout,禁用其滚动功能,遵循textView代理以在内容改变时更新cell高度,以及处理滑动表格时的数据保持问题。通过这种方式,可以避免手动计算cell高度,简化代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发中经常会遇到这样的需求:修改用户、商品等信息时由于内容过多需要折行显示。本篇文章解决了在一个动态的UITabelView中,cell会根据每行TextView输入的内容实时改变cell和TabelView的高度。

这是我想要的效果:
最终效果

实现上面效果的基本原理:
  • 在 cell 中设置好 textView 的 Autolayout,让 cell 可以根据内容自适应大小
  • textView 中输入内容,根据内容更新 textView 的高度
  • 调用 tableView 的 beginUpdates 和 endUpdates,重新计算 cell 的高度
  • 将 textView 更新后的数据保存,以免 tableView 滚动超过一屏再滚回来 textView 中的数据又不刷新成原来的数据了。

一、准备工作

创建项目,自定义创建UITabelViewCell勾选XIB。(一笔带过)

二、为cell中的textView添加约束

为了查看方便我给textView添加了灰色背景
Autolayout
如何为控件添加约束不了解的同学晚上加加点好好学,这里不做过多介绍。

⚠️注意:设置 UITextView 的 scrollEnable 为 NO。这一点很关键,如果不设置为 NO,当UITextView 输入内容超出我们 约束的 frame 后,重新设置 textView 的高度会失效,并出现滚动条。
设置 UITextView 的 scrollEnable 为 NO

三、实际操作

1、让UITextView遵循代理UITextViewDelegate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值