所以我有一个按钮,当点击它时会调用一个向视图添加一些自定义子视图的功能。所以我想要的是当设备处于纵向模式时显示4个子视图,当你将它旋转到横向时只显示一个。我想做这样的事情:
func showSubviews {
if deviceOreintation == portrait{
//show 4 subviews
}
else{
//show 1 subview and hide rest of the three
}
}
我试过这样的事情:
func showSubviews(){
if self.traitCollection.verticalSizeClass == UIUserInterfaceSizeClass.Regular {
//show 4 subviews
}
else{
//show 1 subview and hide the rest three
}
}
感谢任何帮助,谢谢!
答案 0 :(得分:0)
您的代码看起来是正确的。您只需要在视图控制器中覆盖viewWillTransitionToSize(_:withTransitionCoordinator:)
方法并在那里进行一些检查。
答案 1 :(得分:0)
在故事板中,我添加了3个名为:红色,绿色,蓝色和autolayout的视图:
在viewDidLoad
中添加此行NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("didChangeOrientation"), name: UIApplicationDidChangeStatusBarOrientationNotification, object: nil)
添加新功能:
func didChangeOrientation() {
let orientation = UIApplication.sharedApplication().statusBarOrientation
if UIInterfaceOrientationIsLandscape(orientation) {
green.hidden = true
print("landscape")
}
else {
green.hidden = false
print("portrait")
}
}
希望这可以提供帮助。