iOS 11 UISearchController 的 searchBar 背景色有个黑色图层怎么删除不掉?

- (UISearchController *)searchController{
    if (!_searchController) {
        _searchController = [[UISearchController alloc]initWithSearchResultsController:self.resultVC];
        self.definesPresentationContext = YES;
        _searchController.dimsBackgroundDuringPresentation = YES;
        _searchController.hidesNavigationBarDuringPresentation = YES;
        _searchController.searchBar.barTintColor = [UIColor yellowColor];
        // 可以通过此种方式可以拿到搜索框,修改搜索框的样式
        UITextField *searchField = [_searchController.searchBar valueForKey:@"_searchField"];
        searchField.backgroundColor = [UIColor redColor];
        searchField.leftView = nil;
        searchField.layer.cornerRadius = 4;
        searchField.clipsToBounds = YES;
        searchField.leftViewMode = UITextFieldViewModeNever;
        
        UIView *backgroundview = searchField.subviews.firstObject;
        backgroundview.backgroundColor = [UIColor redColor];
        
        NSInteger count = backgroundview.subviews;
        for (UIView *sub in backgroundview.subviews) {
            NSLog(@"%@", NSStringFromClass(sub.class));
        }
    }
    return _searchController;
}

以上是设置代码 ,

UI 如下
clipboard.png

查看层级,发现有个黑色图层
clipboard.png
clipboard.png

尝试删除黑色view保留红色view,却不成功,
从层级来看,黑色是红色的subView, 但是 代码:

    NSInteger count = backgroundview.subviews;
    for (UIView *sub in backgroundview.subviews) {
        NSLog(@"%@", NSStringFromClass(sub.class));// 不会打印
    }

该如何删除这个图层

阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题