2016-08-08 35 views
4

Ich habe zwei Ansichten unterschiedlich definiert wie-UIView in Spielplatz

Erste Methode:

let containerView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 375.0, height: 667.0)) 
containerView.backgroundColor = UIColor.redColor() 

ich das Rechteck sehen.

Zweite Methode:

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

Ich sehe einige Lognachricht wie ausgegeben.

Warum geben beide unterschiedliche Ausgänge?

Einige Tutorials im Web verwendet erste Methode und einige der zweiten.

Hier ist das Bild.

enter image description here

Antwort

0

Manchmal Spielplatz funktioniert nicht wie erwartet. Wahrscheinlich liegt es daran, dass in beiden Ansichten keine Superviews definiert sind.

In der realen App funktioniert es gut.

override func viewDidLoad() { 
    super.viewDidLoad() 

    let containerView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 37.5, height: 66.7)) 
    containerView.backgroundColor = UIColor.redColor() 


    view.addSubview(containerView)  

    let myView = UIView() 
    myView.frame = CGRect(x: 0, y: 290, width: 200, height: 200) 
    myView.backgroundColor = UIColor.blueColor() 

    view.addSubview(myView) 
} 

habe ich versucht, diesen Code in playgorund:

let cv = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 375.0, height: 667.0)) 
cv.backgroundColor = UIColor.redColor() 

let v1 = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 30.0, height: 60.0)) 
v1.backgroundColor = UIColor.yellowColor() 

cv.addSubview(v1) 

let v2 = UIView() 
v2.frame = CGRect(x: 0, y: 200, width: 30.0, height: 60.0) 
v2.backgroundColor = UIColor.blueColor() 


cv.addSubview(v2) 

und es funktioniert für beide initialisers in Ordnung.

+0

Es gibt eine Vorschau für 'cv',' v1', aber es gibt keine Vorschau für 'v2'. Ich meine, wann immer 'v2' verwendet wird, gibt es keine Vorschau. Also, ist es ein Fehler? oder irgendetwas anderes? –

+0

In meinem Spielplatz - ich sehe sie beide. Wenn ich den Lebenslauf vorschaue, sehe ich ein rotes und blaues Rechteck darin. Version 7.2 (7C68). Es ist sehr wahrscheinlich, dass es ein Fehler im Spielplatz ist. – tosha

+0

Ich kann nur 'cv',' v1' sehen, aber ich kann 'v2' nicht sehen, wenn es erstellt wird. Aber ich kann 'v1',' v2' in 'cv' sehen, wenn es hinzugefügt wird. –