2016-03-18 4 views
3

Привет, я пытаюсь получить ширину элемента UIView.IOS swift View.frame.width is wrong

Я тестировал его на эмуляторе Iphone 4s.

У меня есть элемент UIView на главном экране. У этого есть 20 смещений слева и справа сайта экрана.

Когда я называю

UIScreen.mainScreen().bounds.width = 320 

но

viewGame.frame.width = 240 

но ширина viewGame должна быть 260, так как я могу получить реальную ширину кадра?

Edit: я использую autolayout для выравнивания мнение о

+0

Вы совмещаете представление с полями? Это может объяснить разницу. –

ответ

7

извините за беспокойство. Сразу после публикации этого вопроса я нашел решение in this post

Проблема в том, что я вызывал свои функции в функции viewDidLoad() в контроллере представления. Но в это время макеты еще не были решены. Теперь я вызываю свои функции в функции viewDidAppear(), и все работает нормально

+1

Посмотрите также на viewDidLayoutSubviews :) –

+0

Я сделал, но по какой-то причине его вызвали несколько раз, поэтому я скорее придерживался viewDidAppear() в надежде, что он всегда будет просто вызван один раз –

+0

Да, если вы изменяете вид внутри вашей функции, я бы ожидал, что ** viewDidLayoutSubviews() ** снова будет вызван. Рад, что вы это решили! –