如何处理自定义 UITableViewCell XIB 中的两个视图?

Posted

技术标签:

【中文标题】如何处理自定义 UITableViewCell XIB 中的两个视图?【英文标题】:How to handle two views in custom UITableViewCell XIB? 【发布时间】:2012-06-03 12:00:35 【问题描述】:

我在 XIB 的 UITableViewCell 中布局了一个 UIView。

按下按钮后,该视图应转换为另一个视图(不重要如何)。

关键是,我必须以某种方式使用第二个视图进行转换(具有相同的数据源),并在转换后交换这些视图。

我应该创建 - 同一个XIB内的UIView, - 同一个 XIB 中的第二个 UITableViewCell, - 另一个 XIB 中的 UIView - 另一个 XIB 中的 UITableViewCell ?

或者别的什么?

【问题讨论】:

“具有相同的数据源”是指视图内显示的数据/内容吗? 【参考方案1】:

您可以使用此方法进行转换:

[UIView transitionWithView:containerView
       duration:0.2
       options:UIViewAnimationOptionTransitionFlipFromLeft
       animations:^ [fromView removeFromSuperview]; [containerView addSubview:toView]; 
       completion:NULL];

在此示例中(直接来自苹果文档),containerView 将是您的 UITableViewCell,而 fromView 将是它的子视图。 toView 将是替换它的视图。

关于视图 insibe de xib 的排列,我会将它们全部填充在同一个 xib 中,fromView 作为 tableview 单元格的子视图,toView 没有超级视图,但连接到 tableview 单元格(或文件所有者) 通过插座。

【讨论】:

好吧,我还要解释一下。我有完全自定义的 UITableViewCell。它是这样的:单元格被折叠,并且在用户按下按钮后单元格展开。但是我必须有展开视图的截图才能做到这一点,所以我必须提前加载这个视图。动画成功后,我想将折叠视图与展开交换并删除转换后的屏幕截图。 您可以实现自定义过渡。如果将 toView 保存在同一个 xib 中,则加载 toView 不会成为问题。示例代码中还处理了 fromView 的删除。【参考方案2】:

感谢大家的帮助。这比我想象的要容易

我已经通过输入 XIB 解决了这个问题:

UITableViewCell(在顶部) UI 视图

然后将所有内容连接到我的自定义 UITableViewCell 类。

我的主要问题是将两个视图与相同的数据同步,我只是通过在 UITableViewController 中复制我需要的任何内容来实现。

你只需要记住,所有连接都应该在 outlet 和 UITableViewCell 和 >>NOT

【讨论】:

以上是关于如何处理自定义 UITableViewCell XIB 中的两个视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理自定义 UIViewController 委托 (ARC)?

如何处理自定义技能中用户的“是”/“否”响应?

如何处理自定义结果视图的 NSFetchedResultsControllerDelegate 更新

如何处理自定义 android 视图/小部件的可见性更改

使用 pd.read_clipboard 复制数据帧时如何处理自定义命名索引?

Spring DBUnit 插入数据的时候如何处理自增ID