はじめに
複数のボタンをaddSubviewで追加した際にうまく表示されない、というかsubviewに追加すらされてない、という問題が発生したのでメモ。
原因
addSubviewするごとにsubviewsを表示させてみたところ、常に一つしかボタンが追加されておらず、上書きされているような挙動をしていました。
配列を生成する際に
var buttons: [UIButton] = [UIButton](repeating: UIButton(), count: 5)
というように生成していたことが原因のようです。
このようにすると同一のインスタンスが配列の各要素に入るようで、addSubviewした際に上書きされるような挙動をするみたいです。
for _ in 0...4 {
buttons.append(UIButton())
}
のようにすることで無事表示されるようになりました。