【发布时间】:2012-05-11 01:37:05
【问题描述】:
// 实际问题
在使用与 nib 中指定的单元格标识符不同的单元格标识符加载 nib 文件(tableviewcell)时,我需要帮助。
// 我在做什么的背景
我有一个自定义 UITableViewCell,标签很少,图像很少,按钮也很少。所有这些都放在一个 nib 文件中。表格视图单元格的内容需要根据某些条件动态更改,即如果未显示横向按钮;如果标签中没有要显示的内容,则不显示标签等。左侧的相邻标签/视图应扩展以填充缺少的标签/按钮的空间。
我能够让它工作。我这样做的方式是在cellForRowAtIndexPath I
- 使用removeFromSuperView 和 by
删除不需要显示的视图
- 调整frame 并调用setNeedsDisplay 以获得需要调整的视图。
我使用 nib 文件中提到的相同单元格标识符来使单元格出列。如果返回的单元格为零,那么我使用loadNibNamed:withOwner:options 来加载笔尖。但是,我担心这会在来回滚动时导致问题,因为当条件不满足时,被重用的单元格可能没有显示内容所需的视图,因为它们可能已经被删除。
为了解决这个问题,我计划针对不同条件使用不同的单元格标识符,从而触发单元格的不同外观。或者,我也在考虑只隐藏视图并将相邻视图扩展到隐藏视图。这样我就不需要处理不同的单元格标识符。
编辑2:
我隐藏和调整相邻视图框架的替代方法满足了我的需要。
但是我仍然想找到我上面描述的实际问题的答案。
// 潜在的解决方案
我想知道是否可以通过loadNibNamed 函数的options 参数将单元格标识符传递给笔尖加载代码。这可能吗?如果你们能提供一个示例代码来实现这一点,那就太棒了。
感谢您的宝贵时间。
【问题讨论】:
-
这是一个带有原型单元的故事板,还是您的自定义单元在其自己的 nib 中?
-
在自己的笔尖中的自定义单元格;没有故事板。
标签: ios nib identifier tableviewcell loadnibnamed