我跟随here添加UITableView标头,只是创建一个包含两个按钮的View,但是在运行该应用程序时看不到两个按钮。
两个替代功能是:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 60.0;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *vw = [tableView dequeueReusableCellWithIdentifier:@"HeaderCell"];
return vw;
}
注意:目标ios:11.4,xcode为9.4.1,objective-c
========================================= ViewController.m的其余代码
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithStyle:UITableViewStylePlain];
if (self) {
for (int i = 0; i < 5; i++) {
[[BNRItemStore sharedStore] createItem];
}
}
return self;
}
- (IBAction)addNewItem:(id)sender
{
}
- (IBAction)toggleEditingMode:(id)sender
{
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell" forIndexPath:indexPath];
BNRItem *item = [BNRItemStore sharedStore].allItems[indexPath.row];
cell.textLabel.text = item.description;
return cell;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"UITableViewCell"];
//[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"HeaderCell"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [BNRItemStore sharedStore].allItems.count;
}
答案 0 :(得分:0)
代替
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *vw = [tableView dequeueReusableCellWithIdentifier:@"HeaderCell"];
return vw;
}
写下:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UITableViewCell *vw = [tableView dequeueReusableCellWithIdentifier:@"HeaderCell"];
return vw;
}
dequeuResuableCellWithIdentifier根据文档返回UITableViewCell:
@available(iOS 6.0,*)
open func dequeueReusableCell(withIdentifier标识符:字符串,用于indexPath:IndexPath)-> UITableViewCell
答案 1 :(得分:0)
我已经看完前面的评论。您可以尝试关注
UITableViewCell * vw =[tableView dequeueReusableCellWithIdentifier:@"HeaderCell"];
if (cell==nil) {
cell =[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"HeaderCell"];
}
并检查vw中的值。