gpt4 book ai didi

ios - UISearchController 向后滑动时错误的动画然后消失

转载 作者:可可西里 更新时间:2023-11-01 03:34:47 26 4
gpt4 key购买 nike

简而言之,我有一个隐藏了导航栏的主视图 Controller ,我从那个 VC 的导航 Controller 中推送了另一个导航栏可见的 View Controller 。然后我将 searchController 添加到 navigationItem 以在我向下滚动时添加 searchBar。一切正常,直到您向后滑动以弹出 VC。

导航栏将随着 VC 离开屏幕而进行动画处理,但搜索栏将进行动画处理,就好像它在原地上升一样。更糟糕的是,如果我取消滑动以弹出,整个 searchBar 就会消失,取而代之的是出现一个黑色 View (我认为 searchController 背景是任何 View 背景)。

我尝试了一切,只有几行代码,但我一直在努力解决这个问题。我知道我可以只禁用滑动以弹出,但我不希望那样(+ 即使按回 searchBar 以同样奇怪的方式动画)而且我不想以任何其他方式添加 searchBar。

在附带的视频中,我只是用手指滑动来显示动画。

desc

- (void)viewDidLoad {
[super viewDidLoad];
self.definesPresentationContext = YES;
[self.navigationController setNavigationBarHidden:NO];

if (@available(iOS 11.0, *)) {
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
_searchController.delegate = self;
_searchController.searchResultsUpdater = self;
_searchController.searchBar.placeholder = @"Search";
self.navigationItem.searchController = _searchController;
self.navigationItem.hidesSearchBarWhenScrolling = YES;
}
}

最佳答案

添加额外的 UISearchController 我认为是矫枉过正。您始终可以通过 Storyboard或代码将独立的 UISearchbar 添加到您的 View Controller ,并将您的搜索栏托管 View Controller 作为该搜索栏的委托(delegate)。

像这样:

    self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 0, NAVBAR_HEIGHT)];   
self.searchBar.delegate = self;
self.view.addSubView(self.searchBar);

这样,导航项与搜索栏的耦合就会消失,希望问题能得到解决。

关于ios - UISearchController 向后滑动时错误的动画然后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54075076/

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