【问题标题】:MFMailComposeViewController Swift - Set orientation mode as portrait onlyMFMailComposeViewController Swift - 仅将方向模式设置为纵向
【发布时间】:2016-08-25 10:04:45
【问题描述】:

我正在使用 MFMailComposeViewController 如何将方向模式设置为仅纵向

【问题讨论】:

标签: swift mfmailcomposeviewcontroller


【解决方案1】:

MFMailComposeViewController 只是一个 ViewController。因此,您可以做的是创建自己的 MFMailComposeViewController 子类并根据需要覆盖 orientation 方法。

override func shouldAutorotate() -> Bool {
    return false
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return .Portrait
}

【讨论】:

  • 你能添加快速代码吗,因为当我尝试这个编译器时抱怨它不能覆盖 shouldAutorotateToInterfaceOrientation
  • 当我将这些函数添加到从 MFMailComposeViewController 继承的视图控制器中时,不会调用这些函数,知道吗?
【解决方案2】:

基本格式为CGAffineTransformMakeRotation( angle ),其中angleCGFloat 的弧度。您可以使用下面的示例代码轻松rotate 任何object,此外,代码advantage如果您的项目只有横向而不关心代码将您的视图变为纵向

使用这个;

 override func viewWillAppear(animated: Bool) {

        super.viewWillAppear(animated)

        let screenSize: CGRect = UIScreen.mainScreen().bounds
       // Set whatever frame you want
          self.view.frame = CGRectMake(0,0,screenSize.width,screenSize.height)

        self.view.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI_2))


    }

您还可以使用以下方式旋转视图更改:-M_PI_2

  • M_PI = π = 180 度
  • M_PI_2 = π/2 = 90 度
  • M_PI_4 = π/4 = 45 度

【讨论】:

  • 那么,你怎么知道你需要设置多少度数?另外,在您的代码中,您将如何处理方向变化?
  • @PavelGatilov 我写了工作 viewWillAppear 代码,只需使用它将设置为纵向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
  • 2014-03-23
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多