【发布时间】:2025-12-22 04:35:06
【问题描述】:
当设备处于纵向模式时,我们可以为 tableview 使用不同的 TableViewCell,而当设备变为横向模式时,我们可以使用不同的 TableViewCell 吗?
【问题讨论】:
-
可以改用
UICollectionView,在不同模式下处理垂直和水平
标签: ios swift xcode uitableview
当设备处于纵向模式时,我们可以为 tableview 使用不同的 TableViewCell,而当设备变为横向模式时,我们可以使用不同的 TableViewCell 吗?
【问题讨论】:
UICollectionView,在不同模式下处理垂直和水平
标签: ios swift xcode uitableview
是的,当然。
您可以使用以下代码行来检查当前方向,然后决定在 cellForRowAtIndexPath 方法中使用哪个单元格。
if UIDevice.current.orientation == .portrait {
//first cell
} else {
//second cell
}
我认为您还需要一个触发点来让表格视图重新加载它的单元格。
您可以重写以下方法,然后在需要时调用 reloadData 方法。
override func didRotate(from fromInterfaceOrientation: UIInterfaceOrientation) {
}
【讨论】:
如上,但func didRotate已被弃用,而是使用
viewWillTransition(to size: CGSize,
with coordinator: UIViewControllerTransitionCoordinator)
【讨论】: