这是我定义具有IB一个UITableViewHeaderFooterView
最接近:
一个。创建一个UITableViewHeaderFooterView
子类(MYTableViewHeaderFooterView
)。
b。仅为contentView
创建一个笔尖文件(MYTableViewHeaderFooterContentView
)。
c。在MYTableViewHeaderFooterView
中重写initWithReuseIdentifier:
以加载在nib文件中定义的视图。
- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithReuseIdentifier:reuseIdentifier];
if (self)
{
NSArray* objects = [[NSBundle mainBundle] loadNibNamed:@"MYTableViewHeaderFooterView"
owner:self
options:nil];
UIView *nibView = [objects firstObject];
UIView *contentView = self.contentView;
CGSize contentViewSize = contentView.frame.size;
nibView.frame = CGRectMake(0, 0, contentViewSize.width, contentViewSize.height);
[contentView addSubview:nibView];
}
return self;
}
d。注册MYTableViewHeaderFooterView
类,而不是笔尖文件:
[self.tableView registerClass:[MYTableViewHeaderFooterView class] forHeaderFooterViewReuseIdentifier:@"cell"];
这是在iOS 6和iOS 8 –
工作'contentViewSize'是{0,0,0,0} – john07
这实际上是不必要的和苹果有一些示例代码来证明这一点。链接这个问题的新人http://stackoverflow.com/a/20073742/1652402 –