UITableViewCell的XIB中的多个UIView

Posted

技术标签:

【中文标题】UITableViewCell的XIB中的多个UIView【英文标题】:Multiple UIViews in XIB of UITableViewCell 【发布时间】:2013-05-18 08:00:39 【问题描述】:

我一直在尝试使用 UIScrollView 制作自定义 UITableViewCell。 我有一个 .xib,其中包含一个 UITableViewCell(仅包含一个 UIScrollView)和一个 UIView,它是单元格的 scrollView 的内容视图。

好的,现在是应该显示自定义单元格的 UITableView 的代码:

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    [self.tableView registerNib:[UINib nibWithNibName:@"RecessCell" bundle:nil] forCellReuseIdentifier:@"Recess"];


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

        RecessCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Recess"];
        return cell;

RecessCell 类的标头:

#import <UIKit/UIKit.h>

@interface RecessCell : UITableViewCell

@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (strong, nonatomic) IBOutlet UIView *contentView;
@end

scrollView 是每个单元格内 UIScrollView 的出口。 contentView 是 UIScrollView 的内容视图的一个出口。

嗯,到目前为止一切似乎都是合法的,但是当我运行应用程序时:

* 由于未捕获的异常 'NSUnknownKeyException' 导致应用程序终止,原因:'[ setValue:forUndefinedKey:]: 这个类 与键 contentView 的键值编码不兼容。'

我已经阅读了大量有关该运行时错误的信息,但我只能找到:

我需要验证 contentView 实际上是在 标题。 (如您所见,它在那里声明)

我需要在 cellForRow 中将 UITableViewCell 更改为 RecessCell,我这样做了。

我该如何解决这个问题?创建自定义 UITableViewCells 这么难吗?

【问题讨论】:

【参考方案1】:

您不应在头文件中创建另一个名为 contentView 的插座。 UITableViewCell 已经有一个名为 contentView 的属性。

此外,如果您正在使用 UITableVieCell 创建 .xib,并且您正在向 UITableViewCell 添加视图,则视图将被添加到内容视图中。 因此,您需要进入您的 .xib 文件并删除链接到您的 contentView IBOutlet 的视图之间的链接。 (您也可以删除该视图,但要小心,以免删除子视图)

【讨论】:

我的 xib 有 2 个 root 视图:包含 UIScrollView 的 UITableCell 和我想成为 scrollView 内容的 UIView。此视图不在 UITableCell 的视图层次结构中,因为它们是分开的。我一直在尝试做的是在自定义 UITableViewCell 中制作 scrollView 以呈现来自同一个 .xib 的另一个 UIView。我试图更改属性名称,但出现了同样的问题。我怎样才能实现我所说的? 所以让我直截了当地说,你想要 UITableViewCell->UIScrolllView->UIView,但为此你有 2 个根视图,因为? (我不想无礼我只是想了解你的问题)

以上是关于UITableViewCell的XIB中的多个UIView的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局

将多个自定义 UITableViewCell 链接到单个 xib

使用 xib 和自动布局的自定义 UITableViewCell 无法在顶部的多个单元格中正确显示

Xib 文件 UITableViewCell 出口为零

UITableViewCell 的 nib 文件中的自动布局

将 xib 文件中的视图添加到 UITableViewCell 添加约束