1

在iOS 8/9上當UISearchControllerUISplitViewController界面的主屏幕上出現時,自動佈局無法正常工作。iPhone 6 Plus在UISplitViewController和UISearchController旋轉過程中出現Autolayout問題

重現此問題:

  1. 在Xcode中創建一個新的主從應用程序(使用快捷,沒有核心數據)
  2. 添加var searchController: UISearchController!MasterViewController
  3. 添加以下viewDidLoad()

    searchController = UISearchController(searchResultsController: nil) 
    definesPresentationContext = true 
    tableView.tableHeaderView = searchController.searchBar 
    
  4. 在iPhone 6 Plus或模擬器上運行應用程序

  5. 旋轉到風景。
  6. 點擊「+」按鈕,選擇項目,這樣的細節更新
  7. 點擊搜索欄,以目前它在導航欄中
  8. 轉回肖像,細節現在應該會佔據整個屏幕。
  9. 導航回到主(自來水 「<大師」)
  10. 關閉搜索(TAP 「取消」)回景觀

  • 旋轉現在你可以看到UISearchBar不對齊。

    Master Detail Application

    我們可以在視圖調試驗證這一點:

    View Debugger

    ,如果你點擊 「顯示剪輯的內容」 按鈕,這個問題更加明顯:

    enter image description here

    這不僅僅是UISearchBar這是錯誤的ned,但整個MasterViewController。

    我已經在本地郵件複製這個問題,並應用程式的消息,以及:

    iOS Mail App

    iOS Messages App

    有沒有人發現或解決方案工作於這個具體問題?

  • 回答

    1

    唯一可接受的解決方案到目前爲止,我還發現,是落實UISplitViewControllerDelegate方法:

    func splitViewController(splitViewController: UISplitViewController, 
        collapseSecondaryViewController secondaryViewController: UIViewController, 
        ontoPrimaryViewController primaryViewController: UIViewController) -> Bool { 
         return true 
    } 
    

    不要忘記設置拆分視圖控制器的代表。

    儘管這可能不是所需的摺疊行爲,但似乎阻止了自動佈局問題。

    相關問題