iPad的纵向和横向模式我发现this的问题,我一直试图贯彻我们已经给出了解决方案。但是我遇到了一个问题。不同尺寸大小与containerviews
我的初始视图控制器有两个谁都有自己的视图控制器配备了两个集装箱的意见。我创建了一个分配给初始视图控制器的根视图控制器。这个类中的代码看起来像这样。
class RootViewController: UIViewController {
var willTransitionToPortrait: Bool!
var traitCollection_CompactRegular: UITraitCollection!
var traitCollection_AnyAny: UITraitCollection!
override func viewDidLoad() {
super.viewDidLoad()
setupReferenceSizeClasses()
// Do any additional setup after loading the view.
}
override func viewWillAppear(animated: Bool) {
willTransitionToPortrait = self.view.frame.size.height > self.view.frame.size.width
}
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
willTransitionToPortrait = size.height > size.width
}
func setupReferenceSizeClasses(){
let traitCollection_hCompact = UITraitCollection(horizontalSizeClass: .Compact)
let traitCollection_vRegular = UITraitCollection(verticalSizeClass: .Regular)
traitCollection_CompactRegular = UITraitCollection(traitsFromCollections: [traitCollection_hCompact, traitCollection_vRegular])
let traitCollection_hAny = UITraitCollection(horizontalSizeClass: .Unspecified)
let traitCollection_vAny = UITraitCollection(verticalSizeClass: .Unspecified)
traitCollection_AnyAny = UITraitCollection(traitsFromCollections: [traitCollection_hAny, traitCollection_vAny])
}
override func overrideTraitCollectionForChildViewController(childViewController: UIViewController) -> UITraitCollection? {
let traitCollectionForOverride = ((willTransitionToPortrait) != nil) ? traitCollection_CompactRegular : traitCollection_AnyAny
return traitCollectionForOverride;
}
但是,当我运行它时,size类不会像它应该那样响应。其中一个容器视图控制器在横向和纵向模式下都会出现怪异现象,如下所示。
当我不分配RootViewController的它看起来就像这样
有谁知道这里可能会出现什么问题?为什么它不会像所希望的那样改变尺寸等级。
编辑 像@穆罕默德Yawar阿里问这里是从我设置的所有大小类的位置截图。我对任何约束都没有警告或错误,因此这些屏幕截图包含更新的视图。
我希望这显示了所需要的一切。
编辑: 由于某种原因,我不能把所有的截图
我应用了超不过遗憾的事情我 – NoSixties