3

我已经用 UITableView 实现了一个 UISearchController ,它工作得很好,但是旋转有问题。

因此,如果我在纵向模式下将焦点放在搜索栏上,然后在保持焦点的同时旋转,这里的问题是:

对焦时纵向模式改为横向

在此处输入图像描述

我需要取消才能很好地恢复搜索栏显示。同样的事情,如果我在横向模式下将焦点放在搜索栏上,然后在保持焦点的同时旋转,这里的问题是:

对焦时横向模式转纵向

在此处输入图像描述

您可以看到搜索栏不喜欢旋转。 什么可能导致这种情况以及如何解决?

@IBOutlet weak var locationTable: UITableView!

var locationSearchController = UISearchController()

override func viewDidLoad() {
    super.viewDidLoad()

    self.locationTable.delegate = self
    self.locationTable.dataSource = self

    self.locationSearchController = ({

        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.hidesNavigationBarDuringPresentation = false
        controller.dimsBackgroundDuringPresentation = false
        controller.searchBar.searchBarStyle = .Minimal
        controller.searchBar.sizeToFit()
        controller.definesPresentationContext = true;
        self.locationTable.tableHeaderView = controller.searchBar

        return controller
    })()
}
4

1 回答 1

2

我没有完全遇到这个问题,但是对于类似的 UISearchController-puts-the-table-in-the-wrong-place-in-landscape 我发现将以下内容添加到父控制器修复了它(对不起,Objective-C) .

self.edgesForExtendedLayout = UIRectEdgeAll;
self.extendedLayoutIncludesOpaqueBars = YES;
于 2015-08-17T07:59:27.460 回答