相关疑难解决方法(0)

NavigationBar中的iOS 11 SearchBar

在iOS 11中,Apple通过使角落更圆,高度更大来重新设计UISearchBar.只需将它设置为navigationItem的titleView,就可以将UISearchBar添加到navigationBar非常简单navigationItem.titleView = searchBar.

但是,在iOS 11中,它似乎不再像预期的那样工作.看看我们使用iOS 10和iOS 11比较相同设置的屏幕

iOS 10 在此输入图像描述

iOS 11 在此输入图像描述

您可以清楚地看到SearchBar增加了NavigationBar的大小,但条形按钮没有正确对齐.此外,searchBar不再使用左侧的可用空间.

将searchBar放入包装器视图以获取iPad上的取消按钮,如此处所述取消按钮未显示在UISearchBar中似乎不再起作用,因为searchBar根本不可见.

如果有人有类似的问题或已经知道如何解决/改善这一点,我将非常感激.

这是使用Xcode 9 Beta 4构建的.也许将来的版本将解决这个问题.

更新:

由于这没有得到修复,我们决定使用以下解决方案.我们向NavBar添加了一个新的UIBarButtonItem,然后它呈现了一个新的ViewController,我们只将一个searchBar放入NavBar,而这似乎没有用.使用所选答案可能是最佳解决方案,因为Apple 11和iOS 11希望我们使用这种新设计,即使它没有给我们原先想要的结果.另一种可能解决此问题的方法可能是自定义SearchBar,但这是另一个主题.

uinavigationbar uisearchbar ios11

69
推荐指数
3
解决办法
3万
查看次数

UISearchController在点击取消按钮时解除VC

所以,我目前正在尝试用UISearchController替换我的一个项目中的depricated searchDisplayController,我遇到了这个问题.

如果搜索中没有结果(UITableView为空),则整个ViewController被解除.当搜索结果不为空时,不会发生这种情况.我不想说清楚我没有使用UITableViewController.相反,我有一个带有UITableView的常规VC.

这是我的一些代码:

var resultSearchController = UISearchController()
override func viewDidLoad() {
    super.viewDidLoad()
    self.resultSearchController = ({
        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.dimsBackgroundDuringPresentation = false
        controller.searchBar.sizeToFit()
        controller.delegate = self
        controller.searchBar.delegate = self
        self.studentTable.tableHeaderView = controller.searchBar
        return controller
    })()
    ....
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我将此函数添加到等式中,则取消按钮始终会取消VC.

func searchBarCancelButtonClicked(searchBar: UISearchBar) {
    resultSearchController.active = false
}
Run Code Online (Sandbox Code Playgroud)

那么为什么要设置searchController.active = false解雇VC呢?是因为它使用与VC相同的UITableView吗?我相信旧的searchDisplayController只会显示一个正在使用的UITableView.如果是这种情况有没有办法覆盖dismissVC?

uitableview uisearchbar ios swift uisearchcontroller

8
推荐指数
1
解决办法
1300
查看次数

如何在 iOS11 中更改 UISearchController.searchBar.height?

navigationBar.frame.size.height 是 44.0f;

但 UISearchController.searchBar.height 是 56.0f;

[self.view addSubview:self.searchController.searchBar];

如何在 iOS11 中更改 UISearchController.searchBar.height ?searchBar.frame.size.height = 35 没用

在此处输入图片说明

objective-c navigationbar ios uisearchcontroller

5
推荐指数
0
解决办法
622
查看次数