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:- コメント

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

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

 

[Swift2]文字列の描画領域サイズの取得

簡単な関数にしてみました。

func getStringRectSize(str: String) -> CGSize {

let str = “STRING”
let nssString = str as NSString
let strSize: CGSize = nssString.sizeWithAttributes([NSFontAttributeName: UIFont.systemFontOfSize(CGFloat(14.0))])
print(“[\(strSize.width),\(strSize.height)]”)

return strSize

}

 

戻り値として、パラメータに指定した文字列に必要な領域のサイズがCGSizeとして返却されます。

 

 

[Swift2]CALayerでiPhone6Plusの時だけViewの角が丸くならない

先にコードを書きます。
@IBOutlet weak var iconImage: UIImageView!
override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

iconImage.layer.masksToBounds = true
iconImage.layer.cornerRadius = 10.0

}

iconImage.layer.cornerRadius = 10.0

だけで

iconImage.layer.masksToBounds = true

を入れないと、なぜかiPhone6Plusだけ、角が丸くなりません。

他のiPhone5とかiPhone6はちゃんと丸くなるのにー。

ということで、この2行でどのiPhoneでもViewの角が丸くなるようです。