UICollectionView - 在横向模式下重新设计
UICollectionView - redesign in Landscape mode
我正在开发 UICollectionView
以在 Portrait
模式下显示项目列表,如下面的屏幕截图所示,并使用 UICollectionViewController
.
实现
现在我想在 Landscape
模式下重新设计相同的东西,如下面的屏幕截图所示。
如何通过重新使用相同的肖像代码库,在 Landscape
模式下使用 UICollectionView
和 UICollectionViewFlowLayout
获得这样的设计?可能吗?你能给我一些建议吗?
提前致谢。
您也可以使用 stackview 来完成。创建一个包含两个视图的堆栈视图,然后在方向更改时更改轴。为您的要求设置适当的约束。
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
handleOrientationForLandscape(isLandscape: UIDevice.current.orientation.isLandscape)
}
func handleOrientationForLandscape(isLandscape: Bool) {
if isLandscape
{
containerStackview.axis = .horizontal
topViewWidthConstraint.constant = 700
}else
{
containerStackview.axis = .vertical
topViewWidthConstraint.constant = UIScreen.main.bounds.width
}
}
请检查https://github.com/karthikprabhuA/WhosebugAnswer
我正在开发 UICollectionView
以在 Portrait
模式下显示项目列表,如下面的屏幕截图所示,并使用 UICollectionViewController
.
现在我想在 Landscape
模式下重新设计相同的东西,如下面的屏幕截图所示。
如何通过重新使用相同的肖像代码库,在 Landscape
模式下使用 UICollectionView
和 UICollectionViewFlowLayout
获得这样的设计?可能吗?你能给我一些建议吗?
提前致谢。
您也可以使用 stackview 来完成。创建一个包含两个视图的堆栈视图,然后在方向更改时更改轴。为您的要求设置适当的约束。
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
handleOrientationForLandscape(isLandscape: UIDevice.current.orientation.isLandscape)
}
func handleOrientationForLandscape(isLandscape: Bool) {
if isLandscape
{
containerStackview.axis = .horizontal
topViewWidthConstraint.constant = 700
}else
{
containerStackview.axis = .vertical
topViewWidthConstraint.constant = UIScreen.main.bounds.width
}
}
请检查https://github.com/karthikprabhuA/WhosebugAnswer