2016-08-08 1 views
2

Мы используем CGRect внутри рамки, определяя ширину, высоту и точное согласование прямоугольника (формы).CGrect vs сдерживает программирование графического интерфейса IOS pro?

Нужно ли указывать ограничения для элементов пользовательского интерфейса по одному? Если да, зачем мне это нужно? Как насчет поворота устройства (портретный или альбомный режим)? Нужно ли определять другое позиционирование?

ответ

1

Если вы определяете ограничения, вам не нужно указывать рамку CGRect для вашего дизайна. На самом деле лучшим способом является использование NSLayoutConstraints. Причина в том, что вы устанавливаете кадр CGRect, когда ваше устройство вращается большую часть времени, когда ваш CGRect может быть неправильным. По крайней мере, высота и с. Но если вы используете ограничения, когда ваше устройство вращается, он автоматически будет отображать субвью. Это означает, что представления будут изменяться в соответствии с ограничениями.

Когда вы устанавливаете кадр CGRect, что он делает, он меняет положение и размеры вида независимо от ограничений. Затем, если вы попытаетесь вызвать view.layoutIfNeeded() или измените ориентацию, представления будут перегруппированы в соответствии с ограничениями, независимо от того, какой кадр был установлен ранее.

+1

довольно аккуратный ответ, но было бы здорово, если бы оно могло появиться с некоторыми образцами кодирования;) @LIH –

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