Установить программную маску UIView autoresizing?

Я должен программно настроить autoresizingMask для UIView.

Я не знаю, как это реализовать.

enter image description here

Ответ 1

Чтобы достичь того, что у вас есть на этом снимке экрана, вам нужно сделать противоположное тому, что предлагает DrummerB. Вам нужен фиксированный верхний край, поэтому вы делаете каждую другую сторону такой гибкой:

Цель C:

view.autoresizingMask = UIViewAutoresizingFlexibleRightMargin |
                        UIViewAutoresizingFlexibleLeftMargin |
                        UIViewAutoresizingFlexibleBottomMargin;

Не устанавливать сторону как гибкую, означает, что она будет исправлена ​​(поведение по умолчанию), поэтому нет такой вещи, как UIViewAutoResizingFixedTopMargin (поскольку она не отличается от UIViewAutoresizingFlexibleTopMargin)

Изменить для Swift:

view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin]

Кредит Тому Кальмону за добавление быстрой версии 1st.

Приветствия.

Ответ 2

Вам нужно установить свойство autoresizingMask:

view.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;

Возможные значения определены в UIViewAutoresizing:

enum {
   UIViewAutoresizingNone                 = 0,
   UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
   UIViewAutoresizingFlexibleWidth        = 1 << 1,
   UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
   UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
   UIViewAutoresizingFlexibleHeight       = 1 << 4,
   UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
typedef NSUInteger UIViewAutoresizing;

Вы можете установить несколько значений с помощью побитового оператора OR |.

Ответ 3

Swift 2.0:

view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin]

Ответ 4

Чтобы установить гибкую верхнюю маржу, нижнюю маржу, левую маржу и правую границу UIView, напишите следующий код -

autoresizingMask=UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;