開発備忘録 2018/10/11

bundle install と bundle update の違い

bundle install

Gemfile.lock から gem を取得する。

bundle update

Gemfile から gem を取得し、lock を更新する。
本番環境で安易にこれを実行するのは危険。

Xib で View の Simlated Size を変更する

ここを Freeform に変更する。

f:id:hofzzy:20181011143304p:plain

ちなみに ViewController だとここ。

f:id:hofzzy:20181011143308p:plain

removeArrangedSubview: しても StackView から消えない?

コード上で StackView に View を追加するときは addArrangedSubview:、てことは削除するときは removeArrangedSubview: なんかなと思って呼んでみると見事に画面上に残ってしまっている。why……?

というわけで addArrangndSubview:removeArrangndSubview: の挙動について詳しく調べてみた。

まず、addArrangedSubview: すると View は arrangedSubviews というところに追加される。
arrangedSubviews というのは subview の集合みたいなもの。

ここで removeArrangedSubview: すると arrangedSubviews からは削除されるが、StackView に追加された元々の subview は削除されない。
なので画面上では View が残りっぱになってしまっていたという訳だ。

ちなみに画面上から消したい場合は removeFromSuperview() を呼ぶ、もしくは isHidden を true にしてやるといい。

アプリから電話をかける

let url = URL(string: "tel://0312345678")!
UIApplication.shared.open(url: url)

open(_:options:completionHandler:) 何でもできすぎだろ。