我创建了一个新的Storyboard应用程序,为我的表创建了一个IBOutlet,实现了两个表委托。
@interface FirstViewController () <UITableViewDelegate,UITableViewDataSource>.
我还实现了可选的选择器“headerViewForSection”:
- (UITableViewHeaderFooterView *)headerViewForSection:(NSInteger)section
{
NSLog(@"called");
//UITableViewHeaderFooterView* header =[self.testTable headerViewForSection:0];
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 20)];
label.text = @"toast";
label.font = [UIFont fontWithName:@"Arial" size:6];
//[header addSubview:label];
return label;
}
不幸的是,我从未在控制台中获得“被叫”。我也试图手动调用它,但没有成功。
为什么不调用该函数?
P.S,我在构造函数中添加了:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_testTable.delegate = self;
_testTable.dataSource = self;
}
所以我指定了委托,我不知道为什么它不起作用。
答案 0 :(得分:10)
该方法是UITableView
的一部分,是UIViewController
不需要靠近的内部方法。
我相信你要找的是方法......
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
是UITableViewDelegate
的一部分。