[Xamarin][iOS] TabBarのようにUIButtonを等間隔で並べたフッターを作る

今回はUIButtonを等間隔で並べてフッターを作る方法です。
ぶっちゃけそれTabBarでいいんじゃないの?と思いますが
デザイン面でTabBarではクリアにできない問題もあったりします。
このテクニックはUIButtonだけじゃなく、View要素であれば何にでも使えます。

そもそも、iOSの場合View要素を等間隔で並べるってすごい面倒くさいです。
ボタンが偶数個の場合はUIViewを段組みにして比較的簡単に実装できますが、
奇数個になった瞬間大抵のプログラマは発狂するんじゃないでしょうか。

そんな面倒くさいこととはおさらばだ!
というわけで、Interface Builderを使うのをやめてコードでやりましょう。

// Viewの初期化のあたりでリストを初期化しておく
private List buttons;

nfloat _buttonWidth = this.Bounds.Size.Width / this.buttons.Count;
nfloat _buttonHeight = this.Bounds.Size.Height;

this.buttons.ForEach(button =>
{
	button.Frame = new CGRect(_buttonWidth * this.buttons.IndexOf(button), 0, _buttonWidth, _buttonHeight);
});

親Viewの横幅をボタンの数で割って、
そのViewの中に配置する各ボタンの横幅に設定してあげるだけですね。
このやり方だと、ボタンが偶数でも奇数でも対応出来るのでだいぶ楽だと思います。