ios 是否可以在基于故事板的应用程序中为iPhone和iPad(甚至Catalyst)使用不同的UITableView样式?

jdzmm42g  于 2023-05-08  发布在  iOS
关注(0)|答案(2)|浏览(185)

我想模仿与iOS设置应用程序中相同的UITableView样式。所以我有一个主视图控制器,它是一个UITableViewController,表视图样式为“Grouped”。还有一个细节视图控制器,它是一个UITableViewController,在iPhone上具有“Grouped”的表格视图样式,而在iPad上具有“Grouped Inset”的表格视图样式。
在故事板中实现此行为的最佳方法是什么?我似乎不能使这个工作。
如果我必须用不同的特质来做,那么我将不得不保持大约46个不同的特质,因为所有的设备类型。
我尝试覆盖表视图控制器的init函数。但是覆盖init(style:如果基于故事板,则从不调用UITableView.Style)函数。
我尝试以编程方式设置样式,但它是只读属性。
有没有办法在一个故事板中做到这一点?

eeq64g8w

eeq64g8w1#

如果您创建了一个iPadOS故事板视图控制器和一个iPhone控制器,每个都有一个唯一的故事板ID,然后在运行时依赖于您检测到的.userInterfaceIdiom,则可以直接从故事板文件加载具有该特定故事板ID的视图控制器

2izufjch

2izufjch2#

您可以检查设备类型,然后根据其进行更改:

print(UIDevice.current.userInterfaceIdiom)
if UIDevice.current.userInterfaceIdiom == .phone {
   print("running on iPhone")
}

编辑:我不认为你可以在故事板中做到这一点。

相关问题