2017-03-02 5 views
0

すでにサブビューとして表示されているUIViewにサブビューを追加することはできますか?サブビューにサブビューがありますか? swift 3

私のメインビューコントローラには、タップされたマーカー呼び出しでサブビューとして表示されるUIViewがあります。私は、そのサブビューを提示してさらにサブビューを入れたいと思います。それは可能なのですか?

+1

地図ピンのコールアウトビューにサブビューを挿入したいのですか?絵は千の言葉を伝えます。 – Zhang

答えて

0

UIViewクラスはサブビューを持つことができます。サブビューはオブジェクトの種類ではありません。タイプはまだUIViewです。

これはどのように行われますか?

他のUIViewオブジェクトとまったく同じです。サブビューを追加するだけです。同じように扱う:

let mainView = self.view 
let subview = mainView.viewWithTag(42) 

let newSubview = UIView(frame: CGRect(x: 0, y: 0, width: 10, height: 10)) 
subview?.addSubview(newSubview) 
+0

これはとても便利です。ただ1つの単語を変更する必要がありました!私はメインビューコントローラで 'self.view.addSubview'を持っていましたが、あなたが指摘したように、私は 'self.subview.addSubview ...'を持っていたはずです。それは今非常に意味をなさない! –

0

はい、サブビューはネストできます。遊び場の例:

import UIKit 
import PlaygroundSupport 

let view_1 = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) 
view_1.backgroundColor = UIColor.blue 

let view_2 = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100)) 
view_2.backgroundColor = UIColor.red 
view_1.addSubview(view_2) 

let view_3 = UIView(frame: CGRect(x: 10, y: 10, width: 50, height: 50)) 
view_3.backgroundColor = UIColor.green 
view_2.addSubview(view_3) 


PlaygroundPage.current.liveView = view_1 
関連する問題