У меня есть интерфейс, разработанный, как показано ниже, с автоматической компоновкой в XIB.Как я могу одушевить NSSplitView с автоматическим расположением
[Left Pane]-[Center Pane]-[Right Pane]
[ Bottom Pane ]
В настоящее время он поддерживает максимум и минимум ширина/высоты для каждого из панелей, а также рушатся подвиды либо двойным щелчком по разделителю или с NSSegmentedControl. Теперь я хотел бы оживить коллапс, возникающий, когда пользователь переключает NSSegmentedControl. Я видел много примеров настройки анимации с помощью NSSplitView для свертывания подзадача, но ни один из них не выполняет его с помощью Auto Layout.
Я попытался выполнить демонстрационный пример для анимационных ограничений, представленных в видео WWDC 2012 в Auto Layout Demo. Но поскольку это мой первый раз, когда я включаю Auto Layout, я еще не понял, как это сделать.
Ниже то, что я в настоящее время
NSArray *constraints = [self.leftPane constraints];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"firstAttribute = %d", NSLayoutAttributeWidth];
NSArray *filteredArray = [constraints filteredArrayUsingPredicate:predicate];
[self.leftPane removeConstraints:filteredArray];
[self.lcrSplitView layoutSubtreeIfNeeded];
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
[context setAllowsImplicitAnimation:YES];
NSLayoutConstraint *newWidth = [NSLayoutConstraint constraintWithItem:self.leftPane
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:0.0f
constant:0.0f];
[self.leftPane addConstraint:newWidth];
[self.lcrSplitView layoutSubtreeIfNeeded];
} completionHandler:^{}];
Вы когда-нибудь это понимали? У меня есть такая же история, как и вы, вплоть до того, что я только что последовал за этой демонстрацией WWDC 2012. Единственное, что отличается от нас, это то, что у меня на самом деле есть верхняя панель в дополнение к левой, центральной, правой и нижней панелям. – ArtOfWarfare
У меня нет решения, которое еще оживляет, но это может представлять интерес для других: http://stackoverflow.com/a/20027805/901641 – ArtOfWarfare
@ArtOfWarfare, я в конечном итоге получил что-то работающее, но оно было очень запутанным и был склонен к ошибкам. По какой-то причине это отлично работает на Mountain Lion, но не на Mavericks (где это было бы крайне рывком). Таким образом, я закончил тем, что сломал его и создал свой собственный подкласс NSViewController, который содержал 4 подзадача и катил мой собственный настраиваемый NSSplitView. Я также отошел от автоматического макета для этого проекта и просто использовал весну и стойки во многом из-за этой проблемы, вызвав так много головной боли. Я знаю, что мне больно слышать, но я рекомендую просто создать собственную реализацию с разделенным представлением. ... – xizor