Когда я создаю фрейм в iOS с CGRectMake()
, будь то установка свойства frame
или с использованием initWithFrame:
, он запрашивает x, y, ширину и высоту. Я их поставляю.Как вы балансируете автоматический макет с созданием фреймов?
Но с автоматическим макетом я собираюсь сказать что-то вроде: «расположите его в середине» и «установите ширину на половину экрана», сразу после того, как я установил их с CGRectMake()
, по-разному.
Что я устанавливаю их как в CGRectMake()
? 0? Произвольное значение? Что-то близко к тому, что я хочу?
Благодарим вас за отличный ответ. Вопрос: вы предпочитаете устанавливать ограничения в коде или в раскадровке? –
@DougSmith Я лично считаю, что гораздо проще сделать это в раскадровке, так как это избавляет вас от сорняков, создавая все различные ограничения. Но если ваш контроль - это тот, который вам нужно добавить программно, тогда вам также необходимо создавать ограничения программно. Использование языка [визуального формата] (https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Articles/constraintFundamentals.html#//apple_ref/doc/uid/TP40010853-CH2-SW2) часто упрощает создание программных ограничений. Но если вы можете сделать это в Interface Builder, это еще проще. – Rob