[Swift5]AirPrintでのテキストの扱い方

AirPrintではイメージとテキストをそれぞれ印刷できるようですが

LINEプリンターのように使いたかったのでテキスト印刷することにしました。(実際には印刷イメージができてから印刷)

UISimpleTextPrintFormatterを使って文字列を指定して印刷します。

この時フォントはUIFont.monospacedSystemFontを使って等幅フォントを指定しました。

この時アルファベット半角と全角漢字が混ざるのでどうしようかと考えました。

文字列中に全角と半角が混ざっていると印刷位置を合わせるのが非常に難しくなります。(位置合わせの方法を知らないので文字列を全部連結していくので汗)

そこで位置を合わせるために全て全角扱いになるように考慮しました。

全角の文字の幅は半角の1.5倍になるのでちょっと計算は大変ですけど(^^;)

Xcode11に新しくしたら

Xcodeをバージョン11にしました。

そしたらこれまで作っていたiPadアプリのビューが正しく表示されなくなりました。

具体的にはSafeAreaが小さくなってしまっているようです。

それに伴ってViewも小さくなっています。

色々調べるとSegueの設定の変更が必要だとわかりました。

Segueを選択しインスペクター(標準仕様なら右側のペイン)で

PresentationFull Screenにしたら全体表示になってくれました。

めでたしめでたし(^ ^)

[Swift]storyboardを切り替える

オートレイアウトを使いたいけどiPadとiPhoneだとどうもうまくレイアウトができないので

この2つ毎にstoryboard毎Viewを切り替えることに。

で、切り替えはAppDelegateのdidFinishLaunchingWithOptionsで・・・以下を追加。

もちろん切り替える条件は追加してね。(iPadまたはiPhoneとか)

それぞれストーリボードを用意してください。

        // StoryBoardインスタンス化

        let storyboard = UIStoryboard(name: ”storyboard名”, bundle: nil)

        // 画面生成

        let mainViewController = storyboard.instantiateInitialViewController()

        // ルートウィンドウに

        self.window = UIWindow.init(frame: UIScreen.main.bounds)

        self.window!.rootViewController = mainViewController

        self.window!.makeKeyAndVisible()

でいいと思います。(^^)

Multipeer Connectivityを使用してBlueThoothが繋がらない!?

今、制作中のアプリではMultipeer Connectivityの使用を考えています。

PeerToPeerで繋ぐところができたようなので、テストして見ました。

すると本体のWi-FiをOffにしただけなのにiPhone同士が繋がりません。

(アプリではBT(BkueTooth)だけで通信したい)

Wi-Fiをオンにしてもう一度確認すると、ちゃんと繋がりました。

 

これではBTだけで繋がるのかテストできないので、Wi-Fiのないお外に行って

Wi-Fiをオフにしてやってみましたが、それでも繋がりません。

ここでW-Fiをオンにしてみると、きちんと繋がりました。

この時、W-Fiの電波がないことを確認したのでBTだけで通信できたことが確認できました。

 

[Swift2]#pragma markの利用

これまでObject-Cでは

#pragma mark コメント

のようにしてセクション分けをして見やすくできました。

Swiftではそのままの形では使えないので以下のようにします。

//Mark: コメント

区切り線を入れたい場合は、

//Mark:- コメント

のように、コメントの前に”- “を入れます。(空白が大事です)

このようにするとコメントの前に区切り線が入ります