旋转期间 searchController.active 之后,Swift searchBar 与 tableView 的顶部分离

Posted

技术标签:

【中文标题】旋转期间 searchController.active 之后,Swift searchBar 与 tableView 的顶部分离【英文标题】:Swift searchBar separates from top of tableView after searchController.active during rotation 【发布时间】:2014-11-25 14:53:18 【问题描述】:

//为什么包含searchResults数组的tableView在旋转到横向再回到纵向后,将tableView的顶部向下推,从而将searchBar与tableView的顶部分开。这在每次旋转到横向和返回后重复发生。这仅在进行搜索后发生。如果 searchController 未激活,则不会在轮换时发生。

类 InitialViewController: UIViewController, UITableViewDataSource, UITableViewDelegate,UISearchResultsUpdating

@IBOutlet weak var tableView: UITableView!

let searchController = UISearchController(searchResultsController: nil)
let b = searchController.searchBar

b.sizeToFit() // crucial, trust me on this one
b.scopeButtonTitles = ["Drugs", "Tumor", "Target"]
tableView.tableHeaderView = searchController.searchBar
definesPresentationContext = true
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false

【问题讨论】:

【参考方案1】:

由于某些未知原因,实现以下功能解决了旋转问题。

  override func willAnimateRotationToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) 
  
    self.tableView.reloadData()
  

在 viewDidLoad 函数之后粘贴上面的函数,我的问题就消失了。不知道为什么。格伦·蒂斯曼

【讨论】:

以上是关于旋转期间 searchController.active 之后,Swift searchBar 与 tableView 的顶部分离的主要内容,如果未能解决你的问题,请参考以下文章

基于尺寸元素的设备旋转期间的动画更改将在旋转完成后进行

如何在 iPad 中自动旋转期间重新排列视图

在 viewDidLoad 期间应用的 SceneKit 节点旋转无效

CALayer 子层在设备旋转期间不优雅

如何在SVG中旋转期间保持文本方向不变

使 UIButton 在旋转期间保持附加到页脚