在方向改变时改变整个 UI
Change the whole UI on orientation change
我目前正在开发一个 swift 应用程序,在一个视图中,如果设备是纵向和网格,我必须呈现一个 table(在 swift 上下文中) (table 在 excel/html 上下文中)如果方向更改为横向。
鉴于我需要从 UITableView 转到 CollectionView,我如何才能在 UI 中实现此行为?
非常感谢。
来自:
为此:
覆盖 UIView
的方法 (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
。
在这个方法中你需要检查
If (size.width > size.height) {
//it is landscape, show collectionview
} else {
//its in portrait, show tableview
}
这可以在 Interface Builder 中完成,方法是为大小 classes 设计一个横向紧凑的视图布局,另一个横向常规视图布局。您也可以进行垂直尺寸 class 区分,但对于您的情况,水平尺寸似乎更好。
查看 Apple 关于使用大小 classes 构建不同布局的文档:
https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/AboutAdaptiveSizeDesign.html
我目前正在开发一个 swift 应用程序,在一个视图中,如果设备是纵向和网格,我必须呈现一个 table(在 swift 上下文中) (table 在 excel/html 上下文中)如果方向更改为横向。
鉴于我需要从 UITableView 转到 CollectionView,我如何才能在 UI 中实现此行为?
非常感谢。
来自:
为此:
覆盖 UIView
的方法 (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
。
在这个方法中你需要检查
If (size.width > size.height) {
//it is landscape, show collectionview
} else {
//its in portrait, show tableview
}
这可以在 Interface Builder 中完成,方法是为大小 classes 设计一个横向紧凑的视图布局,另一个横向常规视图布局。您也可以进行垂直尺寸 class 区分,但对于您的情况,水平尺寸似乎更好。
查看 Apple 关于使用大小 classes 构建不同布局的文档: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/AboutAdaptiveSizeDesign.html