【发布时间】:2016-08-08 13:49:52
【问题描述】:
这段代码
var searchController: UISearchController!
@IBOutlet weak var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
view.addSubview(searchController.searchBar)
getItems()
}
产生这个: Screeshot1
请注意,searchBar 显示为卡在左上角的按钮(因为这是一个选项卡式应用程序,它在第一次出现时显示在选项卡栏下方。“按钮”按钮用于接收焦点以进行测试)。
这是按下按钮后的样子:Screenshot2
第二张图片显示了我希望搜索选项卡打开时的外观,以及我认为它在 tvOS 中的外观。
如何让 searchController 像第二个屏幕截图中那样显示?许多 tvOS 应用程序都这样做,所以我知道这一定是可能的。我已经仔细阅读了文档,但我一定漏掉了什么。
一个相关的问题是下面的collectionView 不会从searchController 获得焦点。必须使用远程菜单按钮返回以使 collectionView 获得焦点。
当视图出现时,如何让 searchController 像第二个屏幕截图中那样显示?
如何让 collectionView 从 searchController 获得焦点,而不必返回标签栏?
【问题讨论】:
-
添加
self.searchController.searchBar.frame = CGRectMake(960-(self.searchController.searchBar.frame.size.width/2), 200, self.searchController.searchBar.frame.size.width, 44.0)会从 tabBar 下取出按钮,但生成的 UI 是一个破坏 tvOS 界面逻辑的杂物(在我看来)。
标签: swift2 tvos uisearchcontroller apple-tv