如何将 Storyboard headerview 添加到 UITableViewController 初始化时创建的 tableview
How to add Storyboard headerview to tableview created at initialization by UITableViewController
我有一个 UITableViewController 的子类。
默认情况下,它会在初始化时创建一个UITableView
。对于该表视图,我在控制器控制的屏幕中设置了我在 Interface Builder 中创建的 header。 header 有两个按钮:
一个进入表格视图的编辑模式(称为 "Edit")
将随机项目添加到表视图(称为 "New")。
我将名为 headerView
的 IBOutlet
属性 链接到 Interface Builder 中的 header 并将其设置为 header 12=] 在 viewDidLoad
方法初始化时创建。
问题是,当我按下 "New" 按钮(向表格视图添加一个新行和一个新项目)时,表格视图的 header 下降到表格视图的底部.
知道为什么吗?我怎样才能让它保持在顶部?
这是viewDidLoad
方法:
- (void)viewDidLoad {
[super viewDidLoad];
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"UITableViewCell"];
[self.tableView setTableHeaderView:self.headerView];
}
这是按下 "New" 按钮时执行的方法:
- (IBAction)addNewItem:(id)sender {
Item *newItem = [[ItemStore sharedStore] createItem];
NSInteger lastRow = [[[ItemStore sharedStore] allItems] indexOfObject:newItem];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:lastRow inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];
}
谢谢。
可能您以错误的方式设置了 table header 视图的布局。它有任何布局限制吗?
顺便说一句,this project on GitHub 是一个非常简单的示例,用于演示在故事板中实现您想要的内容是多么简单。它将产生如下结果:
请使用此项目与您当前的配置进行比较。
我希望这会以某种方式有所帮助。
我有一个 UITableViewController 的子类。
默认情况下,它会在初始化时创建一个UITableView
。对于该表视图,我在控制器控制的屏幕中设置了我在 Interface Builder 中创建的 header。 header 有两个按钮:
一个进入表格视图的编辑模式(称为 "Edit")
将随机项目添加到表视图(称为 "New")。
我将名为 headerView
的 IBOutlet
属性 链接到 Interface Builder 中的 header 并将其设置为 header 12=] 在 viewDidLoad
方法初始化时创建。
问题是,当我按下 "New" 按钮(向表格视图添加一个新行和一个新项目)时,表格视图的 header 下降到表格视图的底部.
知道为什么吗?我怎样才能让它保持在顶部?
这是viewDidLoad
方法:
- (void)viewDidLoad {
[super viewDidLoad];
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"UITableViewCell"];
[self.tableView setTableHeaderView:self.headerView];
}
这是按下 "New" 按钮时执行的方法:
- (IBAction)addNewItem:(id)sender {
Item *newItem = [[ItemStore sharedStore] createItem];
NSInteger lastRow = [[[ItemStore sharedStore] allItems] indexOfObject:newItem];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:lastRow inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];
}
谢谢。
可能您以错误的方式设置了 table header 视图的布局。它有任何布局限制吗?
顺便说一句,this project on GitHub 是一个非常简单的示例,用于演示在故事板中实现您想要的内容是多么简单。它将产生如下结果:
请使用此项目与您当前的配置进行比较。 我希望这会以某种方式有所帮助。