viewにaddSubViewしたUIButtonが表示されません。

投稿者: Anonymous

viewcontrollerの中身です画像の説明をここに入力

これがviewの状態です。
画像の説明をここに入力

UIButtonが表示されません。
これはなぜか教えていただきたいです。。

(ちなみに、btn1をmainViewにaddSubViewしたら、btnViewの裏に表示されました。)

解決

btn1のframeの設定がおかしいものと思われます。
具体的には次のコードが問題です。

btn1.frame = btnView.frame

このコードを実行すると、btnViewのframeをbtn1のframeに設定します。
btnViewのframeはselfのviewに対しての表示位置としては適正な情報ですが、btn1をbtnView内部に表示する際には正しい情報ではありません。

該当のコードを次のように修正することで適切に表示されます。

btn1.frame = btnView.bounds

UIViewのframeは、
自身が追加されている親Viewに対しての相対位置
を表します。

同様にUIViewのboundsは
自身の内部的な位置における相対位置
を表します。

frameとboundsに対してもっと理解を深めたい場合はApple Developerの次の資料を参照すると良いでしょう。
frame : https://developer.apple.com/documentation/uikit/uiview/1622621-frame
bounds : https://developer.apple.com/documentation/uikit/uiview/1622580-bounds

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *