gpt4 book ai didi

ios - UINavigationController subview 不滚动

转载 作者:行者123 更新时间:2023-11-29 00:07:37 25 4
gpt4 key购买 nike

我有一个导航 Controller 和一个 View ,我将其附加到导航 Controller 的 subview ,我使用下面的代码在向上滑动时隐藏导航栏

    [self.navigationController.view addSubview: categoryView];
self.navigationController.hidesBarsOnSwipe = YES;

向上滑动表格 View 时它隐藏到顶部,但我希望 subview 应该与导航 Controller 一起向上移动,并且它应该适合顶部,而向下滑动导航栏应该与 subview 一起向下移动。

我试过了

[self.navigationController.navigationBar addSubview: categoryView];

在此导航栏和 subview 都隐藏在顶部。我想为此会有一些简单的解决方案,我搜索了很多但没有找到完美的解决方案。我也尝试了一些库,它们不适合 iPhone X 并且在 iOS 11 中有一些问题。

更新:为问题添加图像 before scrollingafter scrolling the tableview

最佳答案

编辑:

您可以将 subview 添加到 View 中,并限制安全区域。

F.e.以编程方式:

self.headerView.translatesAutoresizingMaskIntoConstraints = NO;
self.tableView.translatesAutoresizingMaskIntoConstraints = NO;
if (@available(iOS 11.0, *)) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
UILayoutGuide *guide = self.view.safeAreaLayoutGuide;
[NSLayoutConstraint activateConstraints:@[
[self.headerView.topAnchor constraintEqualToAnchor:self.view.topAnchor constant:0],
[self.headerView.bottomAnchor constraintEqualToAnchor:guide.topAnchor constant:64],
[self.headerView.leftAnchor constraintEqualToAnchor:self.view.leftAnchor constant:0],
[self.headerView.rightAnchor constraintEqualToAnchor:self.view.rightAnchor constant:0]
]];
[NSLayoutConstraint activateConstraints:@[
[self.tableView.topAnchor constraintEqualToAnchor:self.headerView.bottomAnchor constant:0],
[self.tableView.leftAnchor constraintEqualToAnchor:self.view.leftAnchor constant:0],
[self.tableView.rightAnchor constraintEqualToAnchor:self.view.rightAnchor constant:0],
[self.tableView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor constant:0]
]];


}

要在滚动上显示/隐藏导航栏,您可以使用:

if (scrollView.contentOffset.y <= 0) {
[self.navigationController setNavigationBarHidden:NO animated: YES];
} else {
[self.navigationController setNavigationBarHidden:YES animated: YES];
}
[UIView animateWithDuration:[CATransaction animationDuration]
animations:^{
[self.view layoutIfNeeded];
}];

enter image description here

更新的示例:https://github.com/josshad/HideNavBarOnScrollExample

关于ios - UINavigationController subview 不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47573139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com