cell自动计算行高遇到回车换行的问题 UITableView+HYBCacheHeight、UITableView+HYBCacheHeight

本文介绍了一种使用UITableView+HYBCacheHeight和UITableViewCell+HYBMasonryAutoCellHeight解决SwiftUI中UITableViewCell自动计算行高问题的方法。该方法适用于代码编写的控件,并要求使用Masonry进行自动布局。

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

#import "UITableView+HYBCacheHeight.h"

#import "UITableViewCell+HYBMasonryAutoCellHeight.h"


cell自动计算行高,遇到有回车换行的时候就很麻烦,这个UITableView+HYBCacheHeight和UITableViewCell+HYBMasonryAutoCellHeight可以解决问题。但是要注意的是不能用xib,一定要代码写控件,cell里面的控件自动布局要用masonry写,而且要写在init里面,不要写在awakeFromNib里面,否则无效。


设置了这几个就好了。注意preferredMaxLayourWidth的值的w宽度最好用screen的宽度。

### 如何在EasyExcel中设置和启用自动换行 为了在EasyExcel库中设置的功能以及启用单元格内的自动换行,可以利用`WriteHandler`接口来自定义处理器。具体来说,可以通过继承`AbstractRowWriteHandler`类并重写其中的方法来达到目的。 对于设置而言,在覆盖的`afterCellDispose`方法内部调用`row.setHeight`方法,并传入期望的度值作为参数单位为像素[^2]。下面给出一段用于设定特定度的例子: ```java public class RowHeightStyleHandler extends AbstractRowWriteHandler { private int rowHeight; public RowHeightStyleHandler(int rowHeight) { this.rowHeight = rowHeight; } @Override protected void afterCellDispose(WriteSheetHolder writeSheetHolder, List<CellData> cellDataList, Cell cell, List<Integer> relativeColumnIndex, Boolean isHead) { // 设置指定 cell.getRow().setHeight((short)rowHeight); } } ``` 至于开启自动换行,则需借助于样式对象(`CellStyle`)来进配置。可以在同一个自定义handler里边完成这项工作,即修改上述代码中的`afterCellDispose`方法如下所示: ```java @Override protected void afterCellDispose(WriteSheetHolder writeSheetHolder, List<CellData> cellDataList, Cell cell, List<Integer> relativeColumnIndex, Boolean isHead) { // 获取当前单元格对应的样式 CellStyle style = cell.getCellStyle(); if (style == null){ style = writeSheetHolder.getSheet().getWorkbook().createCellStyle(); } // 启动自动换行特性 style.setWrapText(true); // 应用新的样式到目标单元格上 cell.setCellStyle(style); // 如果还需要调整等其他操作可继续在此处添加逻辑... } ``` 最后一步是在执导出动作时注册这个自定义样式的处理器给`EasyExcel.write()`方法: ```java EasyExcel.write(fileName, DemoData.class).registerWriteHandler(new RowHeightStyleHandler(30)) .sheet("模板").doWrite(dataList); ``` 以上就是关于如何使用EasyExcel设置及启动自动换行特性的介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值