iOS App へっぽこ開発者メモ【Swift・Xcode】

swift iOS App

コード -Swift-

文字列操作

実行環境 Swift5

trim トリム

文字列の両端にある半角スペースを除去する。
PHPのtrim()的なやつ↓


var str = " hogehoge " 
str = str.trimmingCharacters(in: .whitespaces)
print( str )
//"hogehoge"と出力

htmlを取得

実行環境 Swift5

iOS13からUIWebViewは非推奨となってしまい、世間はWKWebViewを使おう的な流れのようです。(2019年10月現在)
しかし、WKWebViewは基本非同期処理のため、プログラミング初心者にはちょっと難しい。。
htmlを取得するだけなら、1番オーソドックス(たぶん‥)な方法もあります。



//htmlを取得したいページのURL
let url = "https://ang.tokyo/"

if let getURL = URL(string: url ) {
    
    do {
        //"https://ang.tokyo/"のhtmlを取得し"変数html"に代入
        html = try String( contentsOf: getURL , encoding: .ascii )
        print("HTML : \(html)")
    } catch let error {
        //エラーメッセージを出力
        print("Error: \(error)")
    }
}

iPhoneの機種を判定する

実行環境 Swift5

どうも、Story bordでの画面作成が苦手なので、画面を構成するパーツの配置もコードで記述してしまいます。
でも、iPhoneの機種によって画面サイズや画面の淵の部分が違うので、それぞれの機種ごとにパーツのサイズや配置箇所を設定する必要があります。

そんな時、画面の高さ(UIScreen.main.nativeBounds.height)でiPhoneの機種判定を行う方法です。

まずは、どのファイルからでも参照できるように定数クラスを定義
File : Class.swift(とかに記述。ファイル名はお任せ、いい意味で適当に。)


//画面サイズを取得するため必要
import UIKit
//定数クラス
class Const {
    
    class var DeviceType: Int {
        
        print( "UIScreen.main.nativeBounds.height" , UIScreen.main.nativeBounds.height )

        var DeviceType: Int = 0
        // iPhoneの機種判定
        switch ( UIScreen.main.nativeBounds.height ) {
        case 480:
            DeviceType = 3
            // iPhone
            // iPhone 3G
            // iPhone 3GS
            break
        case 960:
            DeviceType = 4
            // iPhone 4
            // iPhone 4S
            break
        case 1136:
            DeviceType = 5
            // iPhone 5
            // iPhone 5s
            // iPhone 5c
            // iPhone SE
            break
        case 1334:
            DeviceType = 6
            // iPhone 6
            // iPhone 6s
            // iPhone 7
            // iPhone 8
            break
        case 2208:
            DeviceType = 7
            // iPhone 6 Plus
            // iPhone 6s Plus
            // iPhone 7 Plus
            // iPhone 8 Plus
            break
        case 2436://X,XS
            DeviceType = 10
            break
        case 1792://XR
            DeviceType = 10
            break
        case 2688:// XS Max
            DeviceType = 10
            break
        case 1024://iPad 1〜2
            DeviceType = 100
            break
        case 2048://iPad 3〜
            DeviceType = 101
            break
        case 2388://iPad 11inch
            DeviceType = 102
            break
        case 2732://iPad 12.9inch
            DeviceType = 103
            break
        default:
            break
        }
        return DeviceType
    }
}

↑で定義した定数を使用するには、↓


print( "Const.DeviceType : " , Const.DeviceType )
if ( Const.DeviceType == 7 ) {
        // iPhone 6 Plus,6s,7 Plus,8 Plusでの処理
} else if ( Const.DeviceType == 103 ) {
        //iPad 12.9インチでの処理
} else {
        //他機種での処理
}

てな感じです。

コードのみで丸いボタンを作成

Button
こんな感じの丸いボタンをコードのみで作成します。

実行環境 Swift5


//ボタンをインスタンス化
let MyButton = UIButton( type: UIButton.ButtonType.system )
// ボタンの位置とサイズを設定
MyButton.frame = CGRect( x: self.view.frame.width - 100 , y: self.view.frame.height - 210 , width: 90 , height: 90 )
// ラベルを設定する
MyButton.setTitle( "Run", for: UIControl.State.normal )
//背景色を設定
MyButton.backgroundColor = UIColor.rgba(red:35, green:143, blue:237, alpha:1.0)
//フォントカラー
MyButton.setTitleColor(UIColor.rgba(red: 0 , green: 0 , blue: 0 , alpha:1.0) , for: .normal)
//ボタンの輪郭(丸み)を数値で変更する
MyButton.layer.cornerRadius = 45.0
// フォントサイズ
MyButton.titleLabel?.font =  UIFont.systemFont(ofSize: 36)
// viewに追加する
self.view.addSubview( MyButton )

//ボタンを消す
MyButton.isHidden = true
//消していたボタンを表示させる
MyButton.isHidden = true

// ボタンを押した時に実行するメソッドを指定
MyButton.addTarget( self , action: #selector( clickEvent(_:) ) , for: UIControl.Event.touchUpInside )


@objc func clickEvent(_ sender: UIButton ) {
    //ボタンをタップした時の処理を記述
}

リリース関連

スクリーンショットのリサイズ

2019年10月現在、以下3つの画面サイズのスクリーンショットが必要でした。

画面サイズ i-Phone 機種名
5.5インチ iPhone 6s Plus、iPhone 7 Plus、iPhone 8 Plus
6.5インチ iPhone XS Max、iPhone XR
12.9インチ iPad Pro(第 2 世代)、iPad Pro(第 3 世代)

ものぐさな自分は、全部X-codeのシミュレーターの画面をスクショして使う。。
てか、この3サイズに該当するi-Phoneの実機全部もってるわけないし、そうする他ありませんね(悲)

しかし、シミュレーターの画面をスクショして、「App Store Connect」の「App プレビューとスクリーンショット」からアップロードしようとするとエラーになってしまい、「1つ以上のスクリーンショトの寸法が正しくありません。」と表示されてしまいました。

アップロードするには、それぞれ該当の画面サイズにぴったしリサイズする必要があります。

画面サイズ ピクセル
5.5インチ 1242 x 2208 ピクセル(幅×高さ)
6.5インチ 1242 x 2688 ピクセル(幅×高さ)
12.9インチ 2048 x 2732 ピクセル(幅×高さ)

自分は下記のサイトでリサイズしました。

ソフトをダウンロードする必要もないので楽チンです。

https://bulkresizephotos.com/ja

コメント