2016-08-08 3 views
4

Я определил две точки зрения по-разному как-UIView в Playground

Первый метод:

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

Я могу видеть прямоугольник.

Второй метод:

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

я вижу какое-то сообщение журнала, как выход.

Почему обе дают разные выходы?

Некоторые учебные пособия в Интернете используют первый метод, а второй - второй.

Вот изображение.

enter image description here

ответ

0

Иногда, детская площадка не работает, как ожидалось. Наверное, это потому, что оба представления не имеют определенных супервидов.

В реальном приложении это работает нормально.

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) 
} 

Я попробовал этот код в 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) 

и она отлично работает для обоих инициализаторов.

+0

Существует превью для 'cv',' v1', но для 'v2' нет предварительного просмотра. Я имею в виду, когда используется тип определения «v2», нет предварительного просмотра. Так, это ошибка? или что-нибудь еще? –

+0

На моей площадке я вижу их обоих. Когда я просматриваю cv, я вижу в нем красный и синий прямоугольник. Версия 7.2 (7C68). Очень вероятно, что это ошибка на детской площадке. – tosha

+0

Я могу видеть только 'cv',' v1', но я не вижу 'v2', когда он создан. Но я могу видеть 'v1',' v2' внутри 'cv', когда он добавлен. –

Смежные вопросы