ios - UISearchBar subview 奇怪的行为

标签 ios objective-c uisearchbar subview

我已经通过 Interface Builder 添加了 UISearchDisplayController,然后像这样将 UISearchBar 添加到我的 navigationBar

self.searchDisplayController.displaysSearchBarInNavigationBar = YES;

它工作正常,看起来不错。然后我想做的是向 searchBar 添加一个 subview (作为占位符图像)。我通过

[self.searchDisplayController.searchBar addSubview:self.imageView];

问题是,imageView 不可见。我 NSLog 它的 superview 并且我得到确认它是 searchBar。我还可以看到 searchBar 有 1 个 subview,但是当我记录 subview 时,它告诉我它是... drum-rolls ... searchBar 本身。

这怎么可能?

编辑

有趣的是,如果我将 searchBar 作为 subview 添加到 navigationBar 并添加我的 imageView,它是可见的。仅当 self.searchDisplayController.displaysSearchBarInNavigationBar = YESsearchBar 添加到 navigationBar 时才会出现问题。

最佳答案

这是我解决它的方法 - 我希望这对某人有所帮助。像这样向 navigationBar 添加 searchBar 的奇怪之处

self.searchDisplayController.displaysSearchBarInNavigationBar = YES;

是在 viewController 中调用了两次 'didLayoutSubviews',即 searchDisplayControllersearchBar 添加到 navigationBar 我无法通过现有的委托(delegate)方法捕获延迟。

我最终做的是将我的 imageViewzIndex 设置为最大值

self.imageView.layer.zPosition = MAXFLOAT;

因此,即使 searchDisplayController 延迟将 searchBar 添加到 navigationBarimageView 仍然保留在上面。

关于ios - UISearchBar subview 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27777874/

相关文章:

ios - 在 Swift 的屏幕上的列中显示数组中的字符串?

ios - 在向后滑动(向左)的帮助下返回上一个 View Controller

objective-c - 建立一对多关系的最佳方式是什么?

json - 使用 AlamoFire 获取数据以根据 UISearchBar 值填充 UITableView

iOS - UISearchBar 文本字段背景黑色焦点

ios - NSSortDescriptor - 基于另一个数组的排序描述符

带有半径的 Objective-c 搜索位置

ios - 从 UIImagePicker 上传两张图片

ios - PFQuery 仅返回 100 个有限制的对象 (iOS)

iphone - 在 iOS8 中使用 UISearchBar 启用取消按钮