2017-04-18 8 views
1

ランドスケープモードでのポップオーバーの高さを変更したいのですが、ポートレートモードでのみ機能します。ランドスケープモードでのポップオーバーの高さの設定

高さはscreenSize.height * 0.7となりますが、下のコードでは機能しません。ここで

enter image description here

私のコードです:

if let orientation = UIDevice.current.value(forKey: "orientation") as? Int { 
     let diamondViewController = DiamondViewController() 
     diamondViewController.mode = .buyDiamondPopup 
     diamondViewController.resetBackgroundColor = { 
      self.view.backgroundColor = .clear 
     } 

     let screenSize = UIScreen.main.bounds 
     if orientation == 3 { // LandscapeRight 
      diamondViewController.preferredContentSize = CGSize(width: screenSize.width * 0.6, height: 
       screenSize.height * 0.7) 
     } else { 
      diamondViewController.preferredContentSize = CGSize(width: screenSize.width - 60, height: 
       min(screenSize.height - 180, CGFloat(5 * 70 + 110))) 
     } 
     diamondViewController.modalPresentationStyle = .popover 
     if let popover = diamondViewController.popoverPresentationController { 
      popover.permittedArrowDirections = .init(rawValue: 0) 
      popover.sourceView = self.view 
      popover.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0) 
      popover.delegate = self 
      self.view.backgroundColor = UIColor.black.withAlphaComponent(0.5) 
      self.present(diamondViewController, animated: true, completion: nil) 
     } 
    } 

...

func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle { 
    return .none 
} 

答えて

2

代わりにこの

diamondViewController.preferredContentSize = CGSize(width: screenSize.width * 0.6, height: screenSize.height * 0.7) 

の下にこれを試してみてください
diamondViewController.view = CGRect(x: diamondViewController.view.frame.origin.x ,y: diamondViewController.view.frame.origin.y ,width: screenSize.width * 0.6, height: screenSize.height * 0.7) 

もし役に立たないのであれば、私に恋をさせてください。

+1

iPhone 7+では動作しません – Khuong

0

「Vary for traits」ツールを試したことがありますか?これにより、デバイスの向きに応じて異なる制約を適用することができます。ストーリーボードの右下隅付近に、さまざまな制約オプションの横に表示されます。

関連する問題