【问题标题】:UISearchBar in UITableView header layout issue in iOS 14iOS 14 中 UITableView 标题布局中的 UISearchBar 问题
【发布时间】:2021-10-04 20:39:15
【问题描述】:

我在 tableview 标题内使用带有搜索栏的新 UISearchController。在纵向方向上一切正常,但是当我旋转到横向并且 uisearchbar 开始编辑它的框架时,它的框架超出了屏幕,剪裁了取消按钮。 我创建搜索控制器的代码

tableView.tableHeaderView = searchController.searchBar

这是我的示例代码UISearchController sample

横向旋转没有框架问题,但只有在 uisearchbar 开始编辑时才会出现 [

当旋转回uisearchbar的纵向布局时仍然不正确 如果我使用 UITableviewController 没有问题,但我必须使用 uitableview 实现。iOS 14 中是否缺少任何设置?

注意:我必须使用 tableHeaderView 而不是navigationItem.searchController = searchController

【问题讨论】:

  • 可能是也可能不是适合您的解决方案,但是...尝试将 tableView 的前导和尾随限制为 superView 而不是 safe-area
  • 我不知道你为什么“必须用 UITableView 来实现”?只需使用您可用的工具。为什么要让自己的生活变得艰难?
  • @Waseem05 您可以使用视图控制器包含并让表视图控制器控制表视图,并且您仍然可以将其他视图(或视图控制器)添加到您的主 vc。

标签: ios swift autolayout uisearchbar uisearchcontroller


【解决方案1】:

尝试在您对应的UIViewController 方法中调整viewWillTransition 方法中的搜索栏框架。 viewWillTransition 每次在旋转期间都会被调用,使您能够在 UIViewController 旋转期间更改布局。

这里是示例代码:

    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    coordinator.animate( alongsideTransition: { (UIViewControllerTransitionCoordinatorContext) -> Void in
        adjustSearchbarFrame()
    }, completion: { (UIViewControllerTransitionCoordinatorContext) -> Void in
    })
    super.viewWillTransition(to: size, with: coordinator)
}

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多