gpt4 book ai didi

ios - UISearchBar 自动调整大小和改变框架

转载 作者:技术小花猫 更新时间:2023-10-29 10:51:29 25 4
gpt4 key购买 nike

我有一个搜索栏的问题,当它成为 firstResponder 和退出时,它的行为很奇怪。

搜索栏被添加为 TableView 的标题

self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.view.frame.size.width, 44.0f)];
self.searchBar.translucent = NO;
self.searchBar.barTintColor = [UIColor grayColor];
self.tableView.tableHeaderView = self.searchBar;

self.searchController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar
contentsController:self];
self.searchController.searchResultsDataSource = self;

View Controller 设置为 JASidePanelController 的左面板并在键盘显示或隐藏时隐藏中心面板:

- (void)keyboardWillAppear:(NSNotification *)note
{
[self.sidePanelController setCenterPanelHidden:YES
animated:YES
duration:[[note.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
self.searchBar.showsCancelButton = YES;
}

- (void)keyboardWillDisappear:(NSNotification *)note
{
[self.sidePanelController setCenterPanelHidden:NO
animated:YES
duration:[[note.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
self.searchBar.showsCancelButton = NO;
}

正常状态 Normal state

当搜索栏变成 firstResponder 时,它会随机向上或向下移动一个点

Point up Point down



当搜索栏退出时,它会动画到达窗口原点,然后回到其自然框架

Stretching up

Reaching origin

这是一个sample project重现错误。

编辑:

根据 @kwylez suggestion ,可以通过以下方式避免搜索栏退出时产生的不需要的动画:

self.searchBar.clipsToBounds = YES;

最佳答案

我通过创建一个将 ClipBounds 设置为 YES 的 UIView 来解决这个问题,然后在其中添加搜索栏的 subview 。然后将其包含在 TableView 标题中。它现在工作。

谢谢

关于ios - UISearchBar 自动调整大小和改变框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20973210/

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