UITableViewCell的XIB中的多个UIView

时间:2013-05-18 08:00:39

标签: ios uiview uitableview uiscrollview uinib

我一直在尝试使用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:]:this class   密钥内容视图不符合密钥值编码。'

我已经阅读了很多关于运行时错误的内容,我只能找到:

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

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

如何解决此问题?是如此难以创建自定义UITableViewCells?

1 个答案:

答案 0 :(得分:1)

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

此外,如果您使用UITableVieCell创建.xib并且要向UITableViewCell添加视图,则视图将添加到内容视图中。 所以你需要的是进入.xib文件并删除链接到contentView IBOutlet的视图之间的链接。 (您也可以删除该视图,但请注意不要删除子视图)