У меня есть UIStackView (stack1)
, который содержит два расположенных с видом: а UIStackView (stack2)
и UIScrollView (scroll)
IOS, UIStackView контрсил анимации скрытого
stack2
имеют фиксированную высоту и оба его и scroll
имеют фиксированную ширину. scroll
займет оставшееся место.
С нажатием кнопки, stack2
будет Hidden, в результате чего scroll
расширяться и «двигаться вверх» и с той же кнопкой, stack2
снова появится и `прокрутки вернуться к исходному размеру
По какой-то причине, первая анимация прекрасно работает, но когда stack2
должен появиться снова, он появляется за scroll
, который все еще занимает все пространство. Почему это? Я также получаю предупреждение «Невозможно одновременно удовлетворить ограничения».
Вот как они созданы (это Xamarin кстати, но я не думаю, что вопросы)
var stack1 = new UIStackView(View.Frame);
stack1.Axis = UILayoutConstraintAxis.Vertical;
stack1.Alignment = UIStackViewAlignment.Center;
stack1.Distribution = UIStackViewDistribution.FillProportionally;
stack1.Spacing = 0;
var scroll = new UIScrollView(frame);
var stack2 = new UIStackView();
stack2.Axis = UILayoutConstraintAxis.Horizontal;
stack2.Alignment = UIStackViewAlignment.Center;
stack2.Distribution = UIStackViewDistribution.EqualCentering;
stack2.Spacing = 20;
... adding things in stack2 ...
scroll.TranslatesAutoresizingMaskIntoConstraints = false;
stack2.TranslatesAutoresizingMaskIntoConstraints = false;
NSLayoutConstraint.ActivateConstraints(new []{
stack2.HeightAnchor.ConstraintEqualTo(200),
scroll.HeightAnchor.ConstraintEqualTo(frame.Height),
scroll.WidthAnchor.ConstraintEqualTo(frame.Width)
});
stack1.AddArrangedSubview(stack2);
stack1.AddArrangedSubview(scroll);
View.AddSubview(stack1);
Когда я удаляю его, я получаю странное поведение. 'stack1' теперь показывает только' stack2' в центре, 'scroll' нигде не видно. когда я переключаю кнопку, появляется «прокрутка», занимает все пространство, а 'stack2' правильно скрывается, но затем я показываю« стеки2 »,« прокрутка »больше не отображается, а« stack2 »возвращается к центру – WindowsMaker
ohhh Я также изменил 'FillProportionally' на' Fill', и он работает :) спасибо! – WindowsMaker
Я рад, что мой ответ хотя бы подсказывал вам решение :) – Miroslav