ios - 向 UINavigationBar 添加覆盖 View

标签 ios objective-c

我有一个透明的UINavigationBar设置为 appearance , 不涉及子类。

我想添加一个将“充当”UINavigationBar 的 View 的背景,此 View 还有一个展开/折叠自定义搜索栏(不是 UISearchBar 的子类)。我将此 View 称为 OverlayView。

之所以这样,主要是因为背景颜色要动态变化。

我已将 OverlayView 添加为 UINavigationBar 的 subview .它显示正确并且它做我需要的一切。但是当我点击搜索文本字段时,它不会接受点击,即我无法在搜索字段中输入任何内容。

我有userInteractionEnabled设置为 YES在我的 OverlayView 和 UINavigationBar 上.

我应该在别处添加我的 OverlayView 吗?我怎样才能识别该 View 上的点击?

最佳答案

试试这个可能对你有帮助。

UISearchBar *searchBar = [UISearchBar new];
searchBar.showsCancelButton = YES;
[searchBar sizeToFit];
[searchBar becomeFirstResponder];
UIView * OverlayView = [[UIView alloc]initWithFrame:searchBar.bounds];
[OverlayView addSubview:searchBar];
self.navigationItem.titleView = OverlayView;

关于ios - 向 UINavigationBar 添加覆盖 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32381691/

相关文章:

ios - UITableView 选择和取消选择行

ios - CLLocationManagerdesiredAccuracy of kCLLocationAccuracyHundredMeters 导致位置更新非常不频繁

ios - 在 NSDictionary/NSMutableDictionary 中添加数组作为键和值

ios - 在 Xcode 中查找链接到项目的框架

html - 样式化滚动选择器

当使用 Unity3D 和 OneSignal 订阅推送通知时,iOs 因 NSInvalidArgumentException 而崩溃

ios - 如何从设置 Pane 分配激活器操作

ios - 线程 1 : signal SIGABRT - multiple views

ios - iOS Objective C 中的单例不会阻止多个实例

ios - 使用 Push Transition 效果更改 RootViewcontroller