我有一个 UIView 和一个 UITableView 在纵向模式下以相同的高度共享屏幕。
现在,当方向更改为横向模式时,如何隐藏表格 View 并用 UIView 填充整个屏幕。并以纵向模式恢复 UITableView 和 UIView。
提前致谢。
最佳答案
我建议你在 ViewController 中实现 viewWillTransitionToSize
var landscapeViewFrame = CGRect()
var landscapeTableViewFrame = CGRect()
var portraitViewFrame = CGRect()
var portraitTableViewFrame = CGRect()
override func viewDidLoad() {
super.viewDidLoad()
landscapeViewFrame = CGRectMake(0, 0, view.frame.width / 2, view.frame.height)
landscapeTableViewFrame = CGRectMake(view.frame.width, 0, view.frame.width / 2, self.view.frame.height);
portraitViewFrame = view.bounds
portraitTableViewFrame = CGRectMake(0,0,0,0);
}
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
let isPortrait = (size.height > size.width);
yourView.frame = isPortrait ? portraitViewFrame : landscapeViewFrame
yourTableView.frame = isPortrait ? portraitTableViewFrame : landscapeTableViewFrame
yourTableView.hidden = isPortrait
}
viewWillTransitionToSize
通知您的 viewController View 框架将要更改。 UIViewControllerTransitionCoordinator
包含有关动画的信息,例如持续时间/是否有动画。
更新现在 swift 。
基本思路:先计算指定帧。在设备旋转发生变化时,调用 viewWillTransitionToSize
并可以设置 View 的框架。如前所述,您可能需要动画来使一切看起来流畅
关于ios - 在 Swift ios 中将方向更改为横向模式时隐藏底部表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32452185/