2017-06-19 1 views
0

Habe viele Lösungen gesehen, um die Ausrichtung zu überprüfen, aber merkwürdigerweise funktioniert keine !!Prüfen Querformat/Hochformat in einer iMessage App (Erweiterung)

Unten ist der Code-Schnipsel,

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { 
    let screenSize = UIScreen.main.bounds 
    let screenWidth = screenSize.width 
    let screenHeight = screenSize.height 

    print("Screen Width = \(screenWidth)") 
    print("Screen Height = \(screenHeight)") 

    if (screenWidth > screenHeight) { 
     print("Landscape") 
     alertView.removeFromSuperview() 
     messageView.addGestureRecognizer(tapTextView) 
    } 
    else { 
     print("Portrait") 
     setupLandscapeAlertView() 
    } 
} 

Die andere Methode, die Setup verwendet wird, die Ansicht ist,

fileprivate func setupLandscapeAlertView() { 
    messageView.removeGestureRecognizer(tapTextView) 

    alertView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height)) 
    alertView.backgroundColor = UIColor.clear 
    alertView.isUserInteractionEnabled = false 

    let transparentView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.height, height: self.view.frame.width)) 
    transparentView.backgroundColor = UIColor.gray 
    transparentView.backgroundColor = transparentView.backgroundColor!.withAlphaComponent(0.6) 
    transparentView.isUserInteractionEnabled = false 
    alertView.addSubview(transparentView) 

    let blurEffect = UIBlurEffect(style: .regular) 
    let blurredEffectView = UIVisualEffectView(effect: blurEffect) 
    blurredEffectView.frame = transparentView.bounds 
    blurredEffectView.isUserInteractionEnabled = false 
    alertView.addSubview(blurredEffectView) 

    let imageView = UIImageView(image: UIImage(named: "LandscapeAlert")) 
    imageView.frame = CGRect(x: 70, y: 75, width: imageView.frame.width, height: imageView.frame.height) 
    imageView.contentMode = UIViewContentMode.scaleAspectFit 
    imageView.contentMode = UIViewContentMode.center 
    imageView.isUserInteractionEnabled = false 
    alertView.addSubview(imageView) 

    self.view.addSubview(alertView) 
} 

Eine andere Sache ist, dass dieses Bild nicht zentriert ist. Wie gehe ich da vor? Wieder zu viele Lösungen, aber nichts macht den Job.

Nicht sicher, ob ich etwas falsch mache. : -/

Antwort

0

Dies kann sein, weil viewWillTransition ausgeführt wird, bevor die Ansicht tatsächlich umkehrt. Wenn Sie eine einfache print("height width \(view.frame.height) \(view.frame.width)") innerhalb der viewWillTransition Block tun, werden Sie sehen.

Verwandte Themen