【Swift】UIButton の中の UILabel (複数行)の縦位置を中央寄せにする

UIButtonの中にタイトルとして、UILabelがあります。

このラベルを複数行で表示する時に、縦位置を中央寄せにしたいことがありました。

align(横中央) はあるけど、verticalAlign(縦中央) の設定がなさそうだったので、ラベルのマージン設定を使うことにしました。

UIButtonの高さと UILabelの高さの差からマージンを求めました。

let margin = (btn.frame.size.height - (btn.titleLabel?.frame.size.height)!) / 2
btn.titleEdgeInsets = UIEdgeInsetsMake(margin, [左マージン], margin, [右マージン])

これはUIButtonの高さを固定したパターンで使えます。