gpt4 book ai didi

ios - 在 UISplitViewController 中刷新附件类型的最佳做法是什么?

转载 作者:行者123 更新时间:2023-11-29 01:37:02 25 4
gpt4 key购买 nike

我正在使用最后一个 UISplitViewController 实例开发一个通用应用程序(iOS8 后,在 iPhone 和 iPad 上工作)

Apple 最佳实践表明,在一个简单的表格 View 上,打开一个新的详细信息 View ,您应该显示一个披露指示符,但是当您的 Split View在 iPad 上显示时,您不应该显示主表格 View 的附件。

所以我在我的 cellForRowAtIndexPath 函数中想出了这段代码:

cell.accessoryType = self.splitViewController!.collapsed ? .DisclosureIndicator : .None;

这很好,但有时,splitviewcontroller 会发生变化,例如在 iPhone 6 plus 上,当您旋转设备时,或者在 iPad 上,当您使用多任务分屏功能时,主 TableView 应该再次隐藏或显示附件 View ,(它对新加载的单元格也是如此),但我需要重新加载整个 TableView 。

目前,我还没有找到在 View 更改其布局后触发的函数来触发我的 tableview.reloadData()

有人能告诉我重新加载我的 tableview 并确保当我的 splitview 布局发生变化时所有单元格的配件都应该发生变化的最佳做法是什么吗?

最佳答案

您可以通过在 Split View Controller 类中实现 Split View委托(delegate)方法来检测 Split View正在折叠或拆分。要求您为 Split View Controller 创建自定义类。不确定这对你有多大帮助,因为代表可能会在拆分发生之前被调用,所以你不能在那个时候触发表加载,因为它会选择现有的拆分而不是移动到的拆分。

更好的方法可能是通过注册通知来检测方向是否已更改。通知的好处是它是在旋转发生后发送的,因此设置了新的方向。然后只需重新加载,您现有的单元格创建代码将完成剩下的工作。

override func viewDidLoad() {
super.viewDidLoad()

// Add notification of orientation change
NSNotificationCenter.defaultCenter().addObserver(self, selector: "controllerRotated", name: UIDeviceOrientationDidChangeNotification, object: nil)
}

func controllerRotated(){
if(UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation)){
NSLog("Landscape")
}
else{
NSLog("Portrait")
}

self.tableView.reloadData()
}

关于ios - 在 UISplitViewController 中刷新附件类型的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32851423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com