使用 header 而不是中间部分或页脚呈现 TableView
Presenting TableView with header instead of middle section or footer
我有一个带有 header 和一些部分的自定义 tableView
。我在三个 viewController 之间使用制表符。 ViewController
和 tableView
是我的应用程序主页。当我第一次打开应用程序时,一切都很好。但是,如果我向下滚动我的 tableView
,然后使用选项卡移动到其他 viewController
并返回到我的主屏幕,TableView
会显示我离开的部分。我希望它显示为 header(我的 viewController 应该从顶部而不是中间显示)。这是屏幕截图。
这是我的主屏幕
如果我像下面这样向下滚动
然后使用下面的 tabBar
移动到下一个屏幕
这是我回到主屏幕时得到的结果
不应该和第一次一样呈现吗?
您可能需要做的是,实现委托
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
现在在这个委托中,当您的主视图控制器被选中时,访问您的 table 视图并以编程方式将其滚动到操作。
在第一个选项卡的 viewControllers
中,在 viewWillAppear()
方法中添加以下代码。
let scrollPoint = CGPoint(x: 0, y: 0)
self.tableView.setContentOffset(scrollPoint, animated: false)
我有一个带有 header 和一些部分的自定义 tableView
。我在三个 viewController 之间使用制表符。 ViewController
和 tableView
是我的应用程序主页。当我第一次打开应用程序时,一切都很好。但是,如果我向下滚动我的 tableView
,然后使用选项卡移动到其他 viewController
并返回到我的主屏幕,TableView
会显示我离开的部分。我希望它显示为 header(我的 viewController 应该从顶部而不是中间显示)。这是屏幕截图。
这是我的主屏幕
如果我像下面这样向下滚动
然后使用下面的 tabBar
移动到下一个屏幕
这是我回到主屏幕时得到的结果
不应该和第一次一样呈现吗?
您可能需要做的是,实现委托
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
现在在这个委托中,当您的主视图控制器被选中时,访问您的 table 视图并以编程方式将其滚动到操作。
在第一个选项卡的 viewControllers
中,在 viewWillAppear()
方法中添加以下代码。
let scrollPoint = CGPoint(x: 0, y: 0)
self.tableView.setContentOffset(scrollPoint, animated: false)