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 无法在顶部的多个单元格中正确显示