【问题标题】:UISearchBar shifting position in Navigation BarUISearchBar 在导航栏中移动位置
【发布时间】:2014-02-20 02:58:35
【问题描述】:

不知道为什么会这样,我的导航栏中有一个 UISearchBar,但是当我开始滚动 SearchResultsTableView 时,搜索栏似乎跳到了它的位置,我收到了错误警告:[<CALayer: 0x16550840> display]: Ignoring bogus layer size

这里是 searchBar 移动位置的截图。

它很小但很明显。有任何想法吗?谢谢!

这是我用来设置搜索栏的代码

if (!self.cardSearchDisplayController) {
    CGFloat searchBarHeight = 64.0;
    self.cardSearchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, searchBarHeight)];
    self.cardSearchBar.delegate = self;
    self.cardSearchBar.showsCancelButton = YES;

    self.cardSearchDisplayController = [[UISearchDisplayController alloc]initWithSearchBar:self.cardSearchBar contentsController:self];
    self.cardSearchDisplayController.delegate = self;
    self.cardSearchDisplayController.searchResultsDataSource = self;
    self.cardSearchDisplayController.searchResultsDelegate = self;
    self.navigationItem.titleView = self.cardSearchDisplayController.searchBar;
    self.searchDisplayController.displaysSearchBarInNavigationBar = YES;
}

【问题讨论】:

  • 发布您的代码。如何在导航栏中设置搜索栏
  • 你在代码中的任何地方都使用了 CALayer
  • 不,我没有在我的代码中的任何地方使用 CALayer。编辑了上面的搜索栏设置!
  • 有关于这个问题的消息吗?我遇到了同样的错误。

标签: ios uinavigationbar uisearchbar uisearchdisplaycontroller


【解决方案1】:

对于 ios 7,你必须使用这个,在 viewDidLoad 中为我修复了它:

self.edgesForExtendedLayout = UIRectEdgeNone;

希望对你有帮助。

【讨论】:

  • 不幸的是,这似乎对我没有帮助,使用它得到了奇怪的结果......不过谢谢!
  • 对于您的错误可能会有所帮助:stackoverflow.com/questions/2757334/…
  • 奇怪的是,我的代码中没有对 CALayer 做任何事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多