Программное изменение позиций просмотра Xcode с включенным автомакетом

Я работаю над проектом Xcode 6/Swift и заметил, что когда я включаю автоматическую компоновку, я больше не могу программно устанавливать позиции своих представлений. В качестве примера я попытался переопределить ограничения AutoLayout для представления в ViewDidLoad, и это не сработало.

override func viewDidLoad() { 
super.viewDidLoad() 

// This Does not work 
self.myView.center = CGPointMake(150, 200)

} 

Как программно переопределить ограничения просмотра автоматического макета?


person Destin M    schedule 18.12.2014    source источник
comment
Заголовок stackoverflow.com/questions/26984892/   -  person vacawama    schedule 18.12.2014


Ответы (2)


Вам нужно добавить ограничения, если вы используете автоматическую компоновку и хотите указать определенную позицию для любого объекта.
Внизу справа 4 иконки. Вы можете использовать их для ограничений. введите здесь описание изображения

или если вы хотите сделать это программно,
затем создайте IBOutlet NSLayoutConstraint и установите новое значение, выполнив это

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *c1;

и

[UIView animateWithDuration:0.4 animations:^{
        self.c1.constant=500;
    }];
person Mrugesh Tank    schedule 18.12.2014
comment
Я понимаю это, но что, если вы хотите изменить эти позиции программно и анимировать представления, например, при нажатии кнопки? - person Destin M; 18.12.2014
comment
затем обратитесь к этому или это - person Mrugesh Tank; 18.12.2014
comment
Перейдите с отредактированным ответом, он наверняка поможет вам для IBOutlet NSLayoutConstraint, вам необходимо один раз создать ограничение в раскадровке, после чего вы сможете редактировать только это ограничение. - person Mrugesh Tank; 18.12.2014

1- Создайте два ограничения для горизонтального центра и вертикального центра.

2- Подключите эти ограничения из IB к вашему коду.

3- Измените постоянное значение этих ограничений программно.

person Ahmed    schedule 18.12.2014
comment
Есть ли ссылка, которая подробно описывает это или показывает пошаговый процесс? - person Destin M; 18.12.2014