Что у меня есть:программно изменить ALIGMENT в виде UIStackView не работает должным образом
Это моя иерархия просмотров:
- кнопка под названием b1, которая имеет действие под названием «changeAlignment», что активируется При касании вверх внутрь.
- UIView с именем Pview с рамкой (0,100,414,100).
- горизонтальный UIStackView с именем S1, с параметром выравнивания, заданным как «центр». Этот стек будет привязан к границам pView.
- горизонтальный UIStackView с именем S2 с атрибутом выравнивания, заданным как «Заполнить» и который имеет две метки.
- горизонтальный UIStackView с именем S1, с параметром выравнивания, заданным как «центр». Этот стек будет привязан к границам pView.
Что я хочу сделать:
Я хочу изменить выравнивание S1 от "центра" в "Top", когда я прикасаюсь к кнопке b1.
То, что я пытался
- (void) changeAlignment {
NSLog(@"P-%li",(long)S1.alignment);
S1.alignment = UIStackViewAlignmentTop;
NSLog(@"P-%li",(long)S1.alignment);
[pView layoutIfNeeded];
}
Это кажется очевидным, но это не работает !!. Самое забавное, что он работает в какое-то время, но внезапно он перестает работать. Теперь, когда я нажимаю b1, выравнивание S1 изменяется, но визуально оно не изменяется вообще.
Я пытаюсь использовать [self.view setNeedsLayout] [self.view layoutIfNeeded] и даже [S1 layoutIfNeeded], и ни у кого из них нет работы.
Что я делаю неправильно? .. Как даже возможно, что он действительно работает и вдруг перестает работать !! ??
Может кто-нибудь, пожалуйста, помогите мне? ... это сводит меня с ума.
@coverback вы можете помочь мне решить эту проблему? – Airel