我创建了一个自定义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/