2012-11-25 69 views
2

我有一个故事板,其中包含一个UITableViewController。表格视图是静态的,包含两个部分。表视图完全在IB中设置(包括表视图部分的页眉和页脚文本) - 我没有在视图控制器中实现任何表视图委托方法。获取静态UITableView的UITableViewHeaderFooterView

如果我试图获得对给定节的UITableViewHeaderFooterView的引用,它总是返回nil。

UITableViewHeaderFooterView* header =[self.tableView headerViewForSection:0]; 

当我运行应用程序,我可以看到我在IB设置页眉和页脚文本,所以我知道这些观点在那里。我只是无法弄清楚如何以编程方式访问它们。

任何帮助将不胜感激, CS

回答

2

其实你需要指定表页脚视图,并将它传递给使用其委托的表视图。

例如,假设您已经定义了名为tableFooterView的IBOutlet UIView。 然后在下面的委托方法,你可以通过你的tableFooterView你的表视图:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section; // custom view for footer. will be adjusted to default or specified footer height 
{ 
    return self.tableFooterView; 
} 

你也需要实现以下方法来设置表的页脚视图的高度:

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 
{ 
    return self.tableFooterView.frame.size.height; 
} 
+0

谢谢暗影恶魔。出于某种原因,我认为会有一个现有的页眉/页脚视图,因为我可以在IB中自定义它们。 – RobertJoseph

+0

其实只有一个,但Apple不会让你访问它。这些天他们破坏了可可的许多优良特性。 – osxdirk