【问题标题】:UISearchBar with statusbar animation transition bug ios7UISearchBar 与状态栏动画过渡错误 ios7
【发布时间】:2013-10-04 23:09:39
【问题描述】:

UISearchBar 动画有问题。

状态栏打开时动画有问题。否则没关系。 我以编程方式创建了表格视图和搜索栏。 uisearchbar 位于 tableview 的 headerview 中。保持这种状态很重要。我知道当您使用情节提要时它可以正常工作。

我创建了一个非常基本的示例项目,因为我认为这是向您展示问题的最简单方法。 我花了几个小时来找到解决方案,但我就是想不通。任何帮助将不胜感激。

这里是示例项目的链接:SearchBarProject!

【问题讨论】:

  • 你解决了这个问题我有同样的问题并打开了另一个问题 --> stackoverflow.com/questions/19467945/…
  • 不,我最终使用了 displaySearchBarInNavigationBar 方法并将搜索栏放入导航栏。这不完全是我想要的,但它会成功的。如果您找到解决方案,您可以在此处将其链接为 anwser 吗?谢谢

标签: ios objective-c ios7 uisearchbar uisearchdisplaycontroller


【解决方案1】:

我发现了

self.navigationController.navigationBar.translucent = YES;

让我的动画少了错误

【讨论】:

  • 这对我有用,虽然很烦我必须补偿颜色变化。
【解决方案2】:

我认为这是 IOS 7 的错误。 Apple 提供了一个uitableview search example 应用程序。完成编辑搜索栏时也有同样的问题。 IOS 6没有任何问题

【讨论】:

  • 是的,我认为这也是一个错误。我看到了那个示例项目,是的,它也有类似的问题。我想不出办法解决它。我最终使用了 displaySearchBarInNavigationBar 方法并将搜索栏放入导航栏中。这不完全是我想要的,但它会成功的。我希望他们能尽快修复它,或者有人找到修复它的方法。
  • 我发现 IOS 7 有问题,你必须像这样设置 edgesForExtendedLayout:self.edgesForExtendedLayout = UIRectEdgeNone;
  • 这样更好,但动画看起来仍然有问题。
  • 这使我的动画正确,但是导航栏的半透明被带走了,所以颜色与其他视图控制器不匹配。也许在所有视图控制器上使用它来保持颜色的一致性会起作用
【解决方案3】:

只需在 UISearchBar 中添加一个子层并更改视图的背景颜色即可使动画几乎完美

- (void) searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller {
    self.view.backgroundColor = RGB(199,199,204);

    self.fixSearchAnimation = [[UIView alloc] initWithFrame:CGRectMake(0, -20,320, 40)];
    self.fixSearchAnimation.backgroundColor = RGB(199,199,204);
    [self.searchController.searchBar addSubview:self.fixSearchAnimation];
    [self.searchController.searchBar sendSubviewToBack:self.fixSearchAnimation];
}
- (void) searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller {
    self.view.backgroundColor = [UIColor whiteColor];
    [self.fixSearchAnimation removeFromSuperview];
}

在慢速模式下,您仍然可以在搜索栏原始子视图和新视图之间看到一条细线,但对于用户来说并不是很明显,如果这打扰了您,您可以深入研究 UISearchbar 的视图层次结构并将视图在正确的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 2013-11-03
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多