#①for文の注意点
for文の開始値と終了値はint型を要求されるように思い込んでいたが
実際の中身は配列となっている。
for i in 1 ... 5 {
print("Swift")
}
の場合
1...5
は
[1,2,3,4,5]
という解釈の方が正しいと思われる。(正しくはシーケンスというらしい)
そのため以下のようなコードも無事に実行される。
let instrument: [String] = ["piano", "violin", "trumpet"]
for playMusic in instrument {
print(playMusic)
}
piano
violin
trumpet
上記の通り出力される。
#②viewdidLoad、viewWillAppear等が呼ばれるタイミングについて
viewDidLoad:インスタンス化された直後(初回に一度呼ばれる)
viewWillAppear:表示される直前
viewDidAppear:表示された直後
viewWillDisAppear:遷移する直前
viewDidDisAppear:遷移した直後
#③内部引数と外部引数とは
Swift学習時内部引数と外部引数の違いを理解するのに若干時間を必要としました。
関数名をareaOfTrapezoid
とします。
#④NavigationBarの背景を変えたい
UINavigationBar.appearance().barTintColor = UIColor.White
#⑤TabBarの背景を変えたい
選択時の色変更
UITabBar.appearance().tintColor = UIColor.orange
tabBarの背景色変更
UITabBar.appearance().barTintColor = UIColor.White
#⑥値型と参照型の違い
型 | 型 | 説明 | 具体的な説明 |
---|---|---|---|
構造体 | 値型 | 名前をつけて保存 | 変数や定数への代入や引数への受け渡しのたびにコピーされる、変更は共有されない。安全に値を扱いたい際に積極的に使用する。 |
列挙型 | 値型 | 同上 | 同上 |
クラス | 参照型 | 上書き保存 | 変数や定数への代入や引数への際にコピーされず、参照が渡されるため、変更も共有される。状態管理などの変更が必要なデータに積極的に使用する。 |
#⑥インターネット上にあるmp4の再生方法
let videoURL = URL(string: "https://hoge.mp4")
let player = AVPlayer(url: videoURL!)
let playerLayer = AVPlayerLayer(player: player)
self.containerView.layer.addSublayer(playerLayer)
playerLayer.frame = CGRect(x: 0, y: 0, width: containerView.frame.width, height: containerView.frame.height)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
player.play()
#⑦画面遷移方法
let hogeViewController = self.storyboard?.instantiateViewController(withIdentifier: "Hoge") as! HogeViewController
hogeViewController.image = image!
self.present(hogeViewController, animated: true, completion: nil)
#⑧【Swift】動画から静止画を切り出して、UIWebViewにサムネイルとして表示
http://www.suzukigroup.jp/groupblog/?p=8781
#⑧【Swift】カスタムセルを使用する際に注意すること。
#⑧【Swift】ビルドをしても表示がおかしい。
xcordでcommand + shift + k
を試す。
#⑧【Swift】クロージャー内の式
let c3 = { (a:Int, b:Int) -> Double in
b == 0 ? 0.0 : Double(a) / Double(b)
}
print(c3(10,8)) // 1.25
比較の式 ? trueの場合 : falseの場合
#⑨【Swift】参考になる記事
webViewのデバッグ方法:https://www.tam-tam.co.jp/tipsnote/html_css/post12114.html
#⑩【Swift】[]のこと。
open func boundingRect(with size: CGSize, options: NSStringDrawingOptions = [], attributes: [NSAttributedStringKey : Any]? = nil, context: NSStringDrawingContext?) -> CGRect
[]
となっている部分は配列のように記述できるが、厳密には配列ではなく、Option の値を AND したもの。
NSStringDrawingOptions にあるオプションのそれぞれの実際の定義をみると、以下のようになっていて、
NSStringDrawingUsesLineFragmentOrigin = 1 << 0
[]
を使って複数のオプションを記述した場合は、実際にはこれらを論理演算の AND を取った値が使われるようになっています。
なので、1つだけオプションを設定したいときは、 []
を飛ばして値を渡しても構わないという風になっています。
#⑩Staticとは
static
というのは、インスタンスを作らずにアクセスできるようにするという意味。
今後も僕のような本当の初心者のため、些細な気付きを残していこうと思う。