この記事は2018年12月30日に投稿しました。 この記事は2019年04月02日に更新しました。
目次
詳細! Swift iPhoneアプリ開発入門ノート iOS12 + Xcode 10対応
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- 発売日: 2018/11/03
- メディア: 単行本
- この商品を含むブログを見る
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回はPWEditorで使用しているSwiftで端末の向きが変わったことを検知する方法についてです。
2. Swiftで端末の向きが変わったことを検知する
Swiftで端末の向きが変わったことを検知するには、端末回転の通知機能を使用します。
以下はSwift4.2での実装例です。
API仕様の変更により、Swift4.2より前での実装は異なるので注意して下さい。
実装例
class UIViewController: UIViewController { /** インスタンスが生成された時に呼出されます。 */ override func viewDidLoad() { // スーパークラスのメソッドを呼び出します。 super.viewDidLoad() // 端末回転の通知機能を設定します。 let action = #selector(orientationDidChange(_:)) let center = NotificationCenter.default let name = UIDevice.orientationDidChangeNotification center.addObserver(self, selector: action, name: name, object: nil) } /** 画面が非表示になった時に呼出されます。 - Parameter animated: アニメーション指定 */ override func viewDidDisapper(_ animated: Bool) { // スーパークラスのメソッドを呼び出します。 super.viewDidDisapper(animated) // 端末回転の通知機能の設定を解除します。 let center = NotificationCenter.default let name = UIDevice.orientationDidChangeNotification center.removeObserver(self, name: name, object: nil) } /** 端末が回転した時に呼出されます。 - Parameter notification: 通知オブジェクト */ @objc func orientationDidChange(_ notification: NSNotification) { // 端末の向きを判定します。 // 縦向きを検知する場合、 // device.orientation.isPortrait // を判定します。 let device = UIDevice.current if device.orientation.isLandscape { // 横向きの場合 } else { // 縦向きの場合 } } }
3. おわりに
PWEditorでPDF表示機能に対応したときに必要となり実装しました。
いろいろ参考になるサイトはありましたが、Swift4.2だと非推奨になった方法などがあり、ちょっと調査に時間がかかりました。
たった2日でマスターできるiPhoneアプリ開発集中講座 Xcode 10 Swift 4.2対応
- 作者: 藤治仁,小林加奈子,小林由憲
- 出版社/メーカー: ソシム
- 発売日: 2018/10/22
- メディア: 単行本
- この商品を含むブログを見る
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688