使用 Interface Builder 和尽可能少的代码创建具有水平滚动的自定义 UITableViewCell

Posted

技术标签:

【中文标题】使用 Interface Builder 和尽可能少的代码创建具有水平滚动的自定义 UITableViewCell【英文标题】:Creating a custom UITableViewCell with horizontal scroll using Interface Builder and as little code as possible 【发布时间】:2014-01-15 16:22:51 【问题描述】:

我们正在实现一个表格,其中包含一些需要能够水平滚动的单元格。

我们设法通过使用类似于此的代码将 UIScrollView 添加到单元格的 contentView 以编程方式完成这项工作:

UIScrollView *horizScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 200)];
horizScrollView.contentSize = CGSizeMake(2000, 100);
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 500, 80)];
[label setText:@"horizontal scroll sample"];
[horizScrollView addSubview:label];
[cell.contentView addSubview:horizScrollView];

但是,如果使用 Interface Builder 添加 ScrollView 并创建 IBOutlet 以便能够实现剩余的任何代码(例如,设置 ScrollView 的 contentSize),则它不起作用。自定义单元格的 NIB 结构在 IB 中如下所示(抱歉,它看起来很粗糙,但我还不能发布图像):

Horizontal Scroll Cell
|- Content View
   |- Scroll View
      |- Label

我们看到的关于这个场景的所有解决方案都与代码相关。

有谁知道 Interface Builder 方法是否可行,如果不可行,为什么不可行?

【问题讨论】:

【参考方案1】:

对于水平滚动,选择 CollectionView。它非常易于实施且完全可定制。这是一个good tutorial 开头。

【讨论】:

感谢您的建议,将研究这种方法。据我了解,此选项意味着用 CollectionView 替换 ViewController 中的 TableView,而不是用所述 CollectionView 替换自定义单元格的 NIB 结构(如问题中所示)中的 ScrollView。这是正确的吗?

以上是关于使用 Interface Builder 和尽可能少的代码创建具有水平滚动的自定义 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

Interface Builder 中的占位符对象

在 Interface Builder 中使用 Auto Layout 更改方向

是否可以在 Interface Builder 中设计 NSCell 子类?

Interface Builder 文件中的未知类 FirstViewController

有没有一种方法可以在 Interface Builder 中实际*视觉设计*双视​​图(横向 + 纵向)?

使用 Interface Builder 在 iOS 中的一页屏幕上的视差标题