gpt4 book ai didi

iphone - 滚动 uiwebview 时隐藏和显示导航栏

转载 作者:太空狗 更新时间:2023-10-30 03:56:43 25 4
gpt4 key购买 nike

我需要帮助,我正在尝试构建一个应用程序,其中我有一个带有 uiwebviewviewcontroller 和一个带有 2 个按钮的 navbar在上面。我想要做的是,当用户滚动 uiwebview 时,导航栏会自动隐藏,就像向上滑动一样。但没有按我希望的方式工作。让我在这里发布代码。在 viewdidload 中我放了这个。

[webPage.scrollView setDelegate:self];

然后我有这个方法

- (void) scrollViewDidScroll:(UIScrollView *)scrollView {
if(scrollView.contentOffset.y == 0) {
//show
NSLog(@"Show");
[self.navigationController setNavigationBarHidden:NO animated:YES];
} else {
NSLog(@"Hide");
[self.navigationController setNavigationBarHidden:YES animated:YES];
//hide
}
}

NSLog 正确但没有其他 navbar 仍然存在。 :(

最佳答案

在 ViewController 实现文件 (.m) 中添加这个很简单:

- (void)viewDidLoad
{
[super viewDidLoad];
self.webView.scrollView.delegate = self;
}

#pragma mark - UIScrollViewDelegate Methods

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
self.lastOffsetY = scrollView.contentOffset.y;
}

- (void) scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
bool hide = (scrollView.contentOffset.y > self.lastOffsetY);
[[self navigationController] setNavigationBarHidden:hide animated:YES];

}

并且不要忘记在头文件 (.h) 中添加 UIScrollViewDelegate 协议(protocol):

@interface MyViewController : UIViewController <UIScrollViewDelegate>
...
@end

关于iphone - 滚动 uiwebview 时隐藏和显示导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059705/

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