键盘可见时如何重绘自定义集合布局?

我有自定义集合布局,可以使用uicollectionview绘制单元格。每个集合视图单元格都有输入文本视图。当用户输入文本时,需要调整单元格的高度。因此,我将集合视图称为无效布局。但是它将重新绘制准备布局中的所有节和行,并自动关闭键盘。我想键盘保持不动,直到用户点击关闭按钮。用户键入文本时,需要增加单元格高度的高度。

为什么我要自定义布局,是因为我的应用程序需要uicollectionview中的行跨度和列跨度选项(合并和取消合并单元格)。这无法在常规uicollectionviewflowlayout中实现。谁能帮我建议这个问题?

hrbwyj 回答:键盘可见时如何重绘自定义集合布局?

关于重画

我在当前应用中有一个自定义布局。它由各种单元格组成,包括带有文本字段的单元格。我开始使用“字段”编辑单元格,出现键盘。然后,我按下另一个可见的愿望清单单元上的按钮,该单元将产品添加到愿望清单。添加产品后,我使布局无效,并重新加载了愿望清单单元。在所有这些操作过程中,现场单元始终是第一响应者,键盘无处可动。

  

但是它会重新绘制准备布局中的所有节和行,并自动关闭键盘

您确定没有呼叫reloadData()吗?重绘内容的不是布局,而是调用reloadData()的开发人员。

  

我想让键盘保持不动,直到用户点击关闭按钮。

因此,如果您从reloadData()切换到batch updates-键盘将保持不变。

关于调整大小

使布局无效时,将为单元格准备新的属性。具有新尺寸/框架的属性。但是数据源是相同的。这意味着UICollectionView只会移动单元格,但不会重新加载它们。您无需重新加载任何内容!只是无效并提供新属性。现场单元会自动增长。

示例

关于重画中,我描述了重装愿望盒的方式。另外,我添加了字段属性大小更改。现在您可以看到键盘仍然保留,并且现场单元格的大小发生了变化。现在看起来是这样的:

enter image description here

所以,我相信,您只需要进行布局即可。可以实现所需的行为。祝您好运,编码愉快(:

本文链接:https://www.f2er.com/3125780.html

大家都在问