ios – 具有动态单元格高度的UITableViewCell内的UITableView

ios – 具有动态单元格高度的UITableViewCell内的UITableView,第1张

概述我有一个动态的项目列表,每个项目可以有不同的teamplate /布局(和高度).其中一个项目类型可以有一个内部的项目列表供选择,定期5-6行,每行有不同的高度. 如果我尝试进一步描述它,在我的场景中,我在另一个tableview(#master)的tableviewcells(#master-cell)中有一个tableview(#slave).此外,我的#slave tableview中的单元 我有一个动态的项目列表,每个项目可以有不同的teamplate /布局(和高度).其中一个项目类型可以有一个内部的项目列表供选择,定期5-6行,每行有不同的高度.

如果我尝试进一步描述它,在我的场景中,我在另一个tablevIEw(#master)的tablevIEwcells(#master-cell)中有一个tablevIEw(#slave).此外,我的#slave tablevIEw中的单元格(#slave-cell)也可能具有不同的高度.所以我需要布局我的#slave让#master自动计算并更新它的大小.

我有内表(#slave)的问题.在自动布局的情况下,为了适应所有单元格空间,表格将与UILabel或其他控件不同地折叠.所以我需要的是获得#slave表的预计大小并设置#slave的#slave =内容高度的高度.

我发现similar post并且如果所有行都具有相同的高度但是我使用具有动态高度的自定义行,那么tableVIEw.contentSize.Height给我无效结果(基本上只是乘以rowNumbers * estimatedRowHeight,你可以在截图中看到它,主要项目#3有4个内部单元格.即使在调用#slave.reloadData之后我也无法达到那么大.

构建这种UI的正确方法是什么?

Source code附带测试项目(Xamarin.iOS)

解决方法 我几天前遇到了同样的问题,并试图解决它.

#master-cell的工作方式类似于childVIEwController,它是#slave tableVIEwController的委托数据源.但是你不能在UItableVIEwcell中有一个childVIEwController.

自定义UItableVIEwCell以保存必要的属性并充当#slave tableVIEwController的委托数据源,并配置#slave-cell’s
身高和数据.

真正的问题是#master-cell的高度,

>如果您的数据是简单和静态的,您可以提前计算高度,并在方法func tableVIEw中返回它(_ tableVIEw:UItableVIEw,heightForRowAtIndexPath indexPath:NSIndexPath) – > VIEwController的CGfloat.
>否则,向#master-cell添加一个方法,该方法在设置其属性时返回整个单元格的高度.并创建一个代理#master-cell来计算高度并返回它:

overrIDe func tableVIEw(tableVIEw: UItableVIEw,heightForRowAtIndexPath indexPath: NSIndexPath) -> CGfloat {  let cell   = CustomUItableVIEwCell();  let model  = self.getModel(indexPath)  cell.model = model  let height = cell.requiredHeight()  return height;}

它既复杂又昂贵,但它确实有效.

总结

以上是内存溢出为你收集整理的ios – 具有动态单元格高度的UITableViewCell内的UITableView全部内容,希望文章能够帮你解决ios – 具有动态单元格高度的UITableViewCell内的UITableView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1098820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存