我一直在尝试用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实际上是声明在的头。
我需要将UITableViewCell更改为cellForRow中的RecessCell,这是我所做的
如何解决这个问题?创建自定义UITableViewCells这么困难吗?
你不应该在头文件中创建另一个名为contentView的出口。UITableViewCell已经有一个属性叫contentView。
如果你正在用UITableViewCell创建。xib,并且你正在向UITableViewCell添加视图,视图将被添加到内容视图。你需要的是进入你的。xib文件并移除链接到contentviewiboutlet的视图之间的链接。(您也可以删除该视图,但要小心,这样您就不会删除子视图)