ios - 快速更改方向时如何显示 View ?

标签 ios xcode swift

<分区>

我想在纵向模式下显示一个 View ,在横向模式下显示另一个 View 。是否可以?我试过这段代码,但 View 重叠。如何解决?

override func didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) {
    let app = UIApplication.sharedApplication()

    if (app.statusBarOrientation.isLandscape) 

        var imageView : UIImageView
        imageView  = UIImageView(frame: CGRect(x: 0, y: 0, width: 1300
            , height: 50))
        imageView.contentMode = UIViewContentMode.ScaleToFill
        //        UIGraphicsBeginImageContext(self.view.frame.size)
        imageView.image = UIImage(named:"Header")
        self.view.addSubview(imageView)

        UIGraphicsBeginImageContext(self.view.frame.size)
        UIImage(named: "Landscape")?.drawInRect(self.view.bounds)
        let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        self.view.backgroundColor = UIColor(patternImage: image)
       display1()

    if (app.statusBarOrientation.isPortrait)

        var imageView : UIImageView
        imageView  = UIImageView(frame: CGRect(x: 0, y: 0, width: 800
            , height: 50))
        imageView.contentMode = UIViewContentMode.ScaleToFill
        //        UIGraphicsBeginImageContext(self.view.frame.size)
        imageView.image = UIImage(named:"Header")
        self.view.addSubview(imageView)

        UIGraphicsBeginImageContext(self.view.frame.size)
        UIImage(named: "background")?.drawInRect(self.view.bounds)
        let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        self.view.backgroundColor = UIColor(patternImage: image)
        print(String.self, "sandeep potrait")
       displayKeyboard()

最佳答案

您需要隐藏或删除您不想在当前方向看到的 View 。

为此,您需要为这些 View 创建属性,例如:

var portraitImageView: UIImageView?
var landscapeImageView: UIImageView?

func ... {
    if (app.statusBarOrientation.isLandscape) {
        var imageView: UIImageView
        ...
        self.view.addSubview(imageView)

        self.landscapeImageView = imageView

        self.portraitImageView.removeFromSuperview()
        self.portraitImageView = nil
    } else {
        ...
    }
}

关于ios - 快速更改方向时如何显示 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626230/

相关文章:

swift - 无法在 Xcode 10 中使用源代码编辑器扩展

ios - Swift - 按日期排序问题

ios - WKWebView 内容加载函数永远不会被调用

ios - forceTouchCapability 返回零

swift - 有没有一种方法可以有 float 区域,这样我们就可以在 Xcode 的多个屏幕上工作?

swift - 从 Realm 查询返回特定结果

ios - 在 Swift 的 View Controller 中使用 pull_to_refresh

ios - receiveCompletion 和 receiveValue 未被调用

ios - 将绝对 URL 更改为相对 URL 使用系统 API 快速而干净?

iphone - 取消引用 NSCoder 的decodeBytesForKey 返回的指针时,iOS 设备崩溃