我在做什么?
我正在向我的 UITableViewCell
(未子类化)添加动态 View 。
单元层次结构:
UITableView
> UITableViewCell
> cell.contentView
> MainView
> ([Number Of PointView] + [选项 View ])
。
这里是:
当用户点击“添加另一个点”时,我将添加一个 PointView(与上面相同):
Y 位置 [ ]
X 位置 [ ]
看起来像这样
我完成这项工作的逻辑是什么?
- 我正在从
cell.contentView
获取MainView
。 - 然后获取添加到
MainView
中的最后两个 View (Point View 和 Options View)。 - 在
MainView
中添加另一个PointView
。 - 根据上一个
PointView
更新新添加的PointView
的框架,并更新OptionsView
的框架。 - 调整
MainView
的高度 - 并重新加载特定单元格。
我能够让它工作,以确认我已经为那个 MainView
记录了框架和 subview 。但是一旦我再次点击“添加另一个点”按钮,我发现 MainView
根本没有更新?
我的简单问题是,如果我有一个 MainView
(我从 Cell 中获取),我可以直接更新它吗?
附言我已经有了一个很差的解决方案,就是删除 MainView
并重新创建新的——我发现这是不必要的。有什么想法吗?
最佳答案
简短的回答,是的,你可以。
cell.contentView
是一个占位符。您可能遇到的是一个完全不同的问题:UITableViewCells
被缓存,然后被系统回收和重用。
任何时候响应cellForRowAtIndexPath
,基本上都需要重新设置内容。
关于ios - 如何更新在 UITableViewCell 中添加的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31488633/