UISplitViewController 在第一次交互时制作灰框
UISplitViewController makes gray frame on first interaction
我的问题在这个 gif 中展示:
正如您在第一帧中看到的那样,我在第一次互动时得到了一个灰色框。背景视图是红色的,只是为了检查它是否已加载。
我的故事板是这样设置的:
我在代码中所做的唯一修改是在 SplitViewController class 中:
class SplitViewController: UISplitViewController, UISplitViewControllerDelegate {
var collapseDetailViewController = true
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
self.preferredDisplayMode = .PrimaryOverlay
}
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool{
return collapseDetailViewController
}
}
这在我的主表视图中
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
(splitViewController as! SplitViewController).collapseDetailViewController = false
}
这是因为我希望在用户启动我的应用程序时显示边栏。以前有没有人遇到过这个奇怪的错误,有人知道如何解决吗?
我尝试复制,但加载时没有出现灰色框。相反,它按照您的预期工作——侧边栏在应用程序启动时加载。
我发现了一些类似的问题,可能会为您提供一些见解:
我的问题在这个 gif 中展示:
正如您在第一帧中看到的那样,我在第一次互动时得到了一个灰色框。背景视图是红色的,只是为了检查它是否已加载。
我的故事板是这样设置的:
我在代码中所做的唯一修改是在 SplitViewController class 中:
class SplitViewController: UISplitViewController, UISplitViewControllerDelegate {
var collapseDetailViewController = true
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
self.preferredDisplayMode = .PrimaryOverlay
}
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool{
return collapseDetailViewController
}
}
这在我的主表视图中
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
(splitViewController as! SplitViewController).collapseDetailViewController = false
}
这是因为我希望在用户启动我的应用程序时显示边栏。以前有没有人遇到过这个奇怪的错误,有人知道如何解决吗?
我尝试复制,但加载时没有出现灰色框。相反,它按照您的预期工作——侧边栏在应用程序启动时加载。
我发现了一些类似的问题,可能会为您提供一些见解: