自定义 XIB 中的静态 UITableView 或 UICollectionView?

Posted

技术标签:

【中文标题】自定义 XIB 中的静态 UITableView 或 UICollectionView?【英文标题】:Static UITableView or UICollectionView in custom XIB? 【发布时间】:2016-08-30 23:29:01 【问题描述】:

如果您使用 UITableViewControllers,您可以使用 Storyboard 在 UITableViews 中定义静态单元格。但是,使用 UITableViews 甚至 UICollectionViews 似乎都不可能。

目标是定义一个覆盖在现有 UIView 上的滑出菜单。现有的 UIView 不应像大多数实现那样移动。

选项(似乎都不理想):

使用 UITableView,但以编程方式定义所有菜单选项,而不是使用 Storyboard。

使用 UIScrollView 模拟 UITableView 功能。

还有更好的选择吗?如果没有,使用 UIScrollView 有什么问题吗?

【问题讨论】:

【参考方案1】:

在表格视图控制器中,只需选择表格视图,然后从设置窗格中选择静态单元格,如下图所示:

然后在表格视图的子树中选择 section-1 并选择所需的行数:

然后选择你想要自定义的行单元格,你就可以拥有你的静态 uitableView

希望对你有帮助

【讨论】:

在xib文件的容器视图中添加一个合适的视图,按照同样的步骤,就可以了 如问题中所述,使用 uitableview 时没有静态单元格选项。您必须使用 uitableviewcontroller 才能看到该选项。【参考方案2】:

静态表格视图单元仅在使用情节提要时可用。但是,如果您没有在整个 UI 中使用故事板,您仍然可以将它们用于单个屏幕而不是屏幕集合。

为此,您可以创建一个带有单个视图控制器的 UIStoryboard 文件,该文件的文件所有者设置为您的自定义视图控制器子类。将 VC 的标识符设置为某个值。当您想要显示它时,获取故事板,然后通过从您的故事板创建 VC 来实例化您的视图控制器子类。

  UIStoryboard *tableViewStoryboard = [UIStoryboard storyboardWithName:@"your storyboard" bundle:nil];
  CustomViewController = [tableViewStoryboard instantiateViewControllerWithIdentifier:@"custom identifier"];

您可以像往常一样在您的应用中展示此 VC。

这是开始使用情节提要的好方法,无需将整个应用转换为使用它们。

【讨论】:

以上是关于自定义 XIB 中的静态 UITableView 或 UICollectionView?的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 和自定义 UITableViewCell 使用 .xib

如何在 .xib 文件中使用自定义 UITableView 和 UITableViewCell?

用于 UITableView 的自定义 XIB 单元格在滚动时卡住/卡住

Xcode UITableView 自定义单元格xib 图像高度

新手教程之使用Xib自定义UITableViewCell

一旦我开始滚动,我的带有自定义 xib 单元格的 UITableView 就会消失