[iOS 8] storyboard, xib で UIImageView に addSubview する
なぜかできない
storyboard や xib では UIImageView に UIView を継承するオブジェクトを addSubview することができません。
ですが、私はよく「枠のような画像の UIImageView の中に UILabel をaddSubview する」ということがしたくなります。
今回はこれを storyboard で実現する方法をお伝えします。
やりたいこと
やりかた
1. storyboard 上で、UIView を UIImageView に変更する
2. コードで UIImageView の image を設定する
storyboard 上でクラスを変更しても、表示される項目は UIView のものなので、storyboard から image を設定することはできません。できまーす! 下記参照。
よって、以下のように画像の指定はコードで行う必要があります。
imageView.image = UIImage(named: "frameImage")
追記:User Defined Runtime Attributes を利用することによって、storyboard から image を設定することが可能です。(コメントありがとうございます)
2'. storyboard 上で UIImageView の image を設定する
実行画面
まとめ
以上のように storyboard の設定を行うことで、UIImageView に UIView を継承するオブジェクトを addSubview することができるようになります。
これによって addSubview したオブジェクトに対して Autolayout の設定がとても簡単に行えるようになります。
ただし、理由はわかりませんが Apple の推奨しているやり方ではないので、使用するときは自己責任でお願いします。