45317


viewcontrollerの中身です[![画像の説明をここに入力](https://i.stack.imgur.com/6JvMn.png)](https://i.stack.imgur.com/6JvMn.png)

これがviewの状態です。  
[![画像の説明をここに入力](https://i.stack.imgur.com/uJvPl.png)](https://i.stack.imgur.com/uJvPl.png)

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

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


CC BY-SA 4.0
2018-06-23T04:47:03.053
45000
2018-07-04T18:12:35.583
29047
question
swift xcode swift4
viewにaddSubViewしたUIButtonが表示されません。


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

[code]

    btn1.frame = btnView.frame
    
[/code]

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

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

[code]

    btn1.frame = btnView.bounds
    
[/code]

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>


CC BY-SA 4.0
2018-07-04T18:12:35.583
45317
2018-07-04T18:12:35.583
26681
45000
answer