コード -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 {
//他機種での処理
}
てな感じです。
コードのみで丸いボタンを作成
こんな感じの丸いボタンをコードのみで作成します。
実行環境 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 ピクセル(幅×高さ) |
自分は下記のサイトでリサイズしました。
ソフトをダウンロードする必要もないので楽チンです。
コメント