У меня есть список представлений, которые я хочу разместить. У меня есть два состояния, где взгляды должны быть расположены по-разному.
Я новичок в AutoLayout, и я могу получить к нему неправильный доступ - я открыт для разных способов сделать это.
Я создал это, чтобы расположить список TabBarItem : UIView
для первого состояния:
NSMutableDictionary* metrics = [@{@"margin": @(TAB_BAR_ITEM_MARGIN)} mutableCopy];
for (int i = 0; i < [self.tabBarItems count]; i++)
{
TabBarItem* item = [self.tabBarItems objectAtIndex:i];
if (i > 0)
{
TabBarItem* lastAddedItem = [self.tabBarItems objectAtIndex:i - 1];
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(item, lastAddedItem);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[item]-(==margin)-[lastAddedItem]" options:0 metrics:metrics views:viewsDictionary];
[self.view addConstraints:constraints];
}
else
{
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(item);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(>=0)-[item]-(==margin)-|" options:0 metrics:metrics views:viewsDictionary];
[self.view addConstraints:constraints];
}
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(item);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(==0)-[item]" options:0 metrics:metrics views:viewsDictionary];
[self.view addConstraints:constraints];
}
self.view
— это superview
из TabBarItem
.
Теперь я хочу иметь возможность перемещать все TabBarItem
в совершенно другое положение (вероятно, потребуются другие ограничения) с помощью AutoLayout.
Как мне подойти к этому? Могу ли я определить ограничение и удалить его, чтобы добавить другое?
Как уже упоминалось, я новичок в AutoLayout и действительно хочу сделать это правильно :-)