我创建了一个自定义UIView,希望将其用作TableView的页眉节 View 。
因此,我使用UIView组件手动创建了NIB。
然后,我为要与该类关联的类手动创建了一个* .m和* .h,
我将“AssignmentHeaderView.m”和“AssignmentHeaderView.h”设置为“AssignmentHeaderView”。
另外,我在AssignmentHeaderView.h中创建一个“view”属性,如下所示:

@property (strong, nonatomic) IBOutlet UIView *view;

然后我在“ View ”属性和Interface Builder中的“ View ”之间建立了连接。

然后在我的TableViewController中,我将该Nib注册为ViewDidLoad中的HeaderView,其代码为:
[self.tableView registerNib:[UINib nibWithNibName:@"AssignmentHeaderView" bundle:nil] forHeaderFooterViewReuseIdentifier:@"AssignmentHeaderView"];

这样我以后就可以在“viewForHeaderInSection”委托(delegate)中将该头 View 出队:
AssignmentHeaderView *headerView = [self.tableView dequeueReusableHeaderFooterViewWithIdentifier:@"AssignmentHeaderView"];

但是我在此行上收到以下消息,显示异常错误:

由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[setValue:forUndefinedKey:]:此类不适用于键 View 的键值编码。

因此,该错误抱怨在未存档NIB时,AssignmentHeaderView中没有“view”属性,我认为这是在说什么。但是我确实在AssignmentHeaderView.h中设置了“view”属性,所以我不明白为什么会出现此错误。

任何帮助深表感谢。

-马勒纳

最佳答案

对于一般知识,我发现了问题。
tableView方法“dequeueReusableHeaderFooterViewWithIdentifier”期望要出队的实例属于类类型:UITableViewHeaderFooterView。

由于我尝试使用自定义UIView子类,因此编译器并不满意。我只能推测为什么,而不是告诉我我要出队的 View 的类应该是UITableViewHeaderFooterView类型,这给了我NIB加载错误。
但是无论如何,有人发布了一个很好的解决方案,说明如何使用UITableViewHeaderFooterView创建Header Section自定义 View 。

这里是:
http://iosdev12.blogspot.com/2013/07/how-to-set-custom-section-header-in.html

这对我有用

关于objective-c - 使dequeueReusableHeaderFooterView WithIdentifier中的 header View 出队提示IBoutlet,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22051144/

10-10 08:06