在“Swift3”中可编程设置方向
Posted
技术标签:
【中文标题】在“Swift3”中可编程设置方向【英文标题】:programmably setting orientation in "Swift3" 【发布时间】:2016-10-25 17:08:26 【问题描述】:我在编写 swift2 代码时确实知道如何修复方向,但是在他们将函数更改为“var”后,新代码不起作用。
这是用于检查的示例 UIViewController 类
class QuizVC: UIViewController
override func viewDidLoad()
super.viewDidLoad()
//Quiz scene
self.view.backgroundColor = UIColor(red: 240/255, green: 238/255, blue: 226/255, alpha: 1)//sand fron hu
let testBtn: UIButton = UIButton()//for orientation test
testBtn.setTitle("\" Orientation????????Check \"", for: .normal)
testBtn.sizeToFit()
testBtn.center = self.view.center
testBtn.titleLabel?.textColor = UIColor.white
testBtn.backgroundColor = UIColor.brown
self.view.addSubview(testBtn)
//Do any additional setup after loading the view, typically from a nib.
override var supportedInterfaceOrientations : UIInterfaceOrientationMask //not working
return UIInterfaceOrientationMask.landscape
override var shouldAutorotate: Bool //not working
return false
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
当我运行这段代码时,它似乎只是忽略了那个覆盖。 视图自动旋转,按钮和标签不显示为横向。甚至没有修复。
我也尝试将方向值直接放入变量中,但 'supportedInterfaceOrientations' 是 get-only 属性。 当然,旧代码被接受为错误,因为不再有名为“supportedInterfaceOrientations()”的函数。只有变量存在。
有人在 Swift3 中尝试过吗?
我在 ios10 上使用 swift3。
【问题讨论】:
How to lock viewController in Portrait mode的可能重复 【参考方案1】:-
移除 shouldAutorotate
在(应用设置页面)/常规/设备方向中启用横向
这应该可以正常工作。
【讨论】:
【参考方案2】:struct AppUtility
static func lockOrientation(_ orientation: UIInterfaceOrientationMask)
if let delegate = UIApplication.shared.delegate as? AppDelegate
delegate.orientationLock = orientation
/// OPTIONAL Added method to adjust lock and rotate to the desired orientation
static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation)
self.lockOrientation(orientation)
UIDevice.current.setValue(rotateOrientation.rawValue, forKey: "orientation")
在您的项目中添加上述类。
AppUtility.lockOrientation(.landscape, andRotateTo: .portrait)
【讨论】:
以上是关于在“Swift3”中可编程设置方向的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3:UITextView - 动态高度 - 以编程方式