LoginSignup
0
4

More than 5 years have passed since last update.

swift初心者備忘録帳

Last updated at Posted at 2018-02-15

①for文の注意点

for文の開始値と終了値はint型を要求されるように思い込んでいたが
実際の中身は配列となっている。

for文
for i in 1 ... 5 {
    print("Swift")
}

の場合
1...5

[1,2,3,4,5]
という解釈の方が正しいと思われる。(正しくはシーケンスというらしい)

そのため以下のようなコードも無事に実行される。

for文2

let instrument: [String] = ["piano", "violin", "trumpet"]

for playMusic in instrument {
    print(playMusic)
}
for文2(結果)
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の再生方法

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()

⑦画面遷移方法

Swift
let hogeViewController = self.storyboard?.instantiateViewController(withIdentifier: "Hoge") as! HogeViewController
        hogeViewController.image = image!
        self.present(hogeViewController, animated: true, completion: nil)

⑧【Swift】動画から静止画を切り出して、UIWebViewにサムネイルとして表示

swift
http://www.suzukigroup.jp/groupblog/?p=8781

⑧【Swift】カスタムセルを使用する際に注意すること。

スクリーンショット 2018-04-18 14.33.23.png

⑧【Swift】ビルドをしても表示がおかしい。

xcordでcommand + shift + kを試す。

⑧【Swift】クロージャー内の式

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 というのは、インスタンスを作らずにアクセスできるようにするという意味。

今後も僕のような本当の初心者のため、些細な気付きを残していこうと思う。

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4