Что у меня есть:
Это моя иерархия взглядов:
- кнопка с именем b1, у которой есть действие с именем «changeAlignment», которое активируется при касании внутри.
- an UIView named Pview with frame (0,100,414,100).
- an horizontal UIStackView named S1, with the alignment property set as "center". This stackView has been pinned to the borders of pView.
- an horizontal UIStackView named S2, with the alignment property set as "Fill" and which has inside two labels.
- an horizontal UIStackView named S1, with the alignment property set as "center". This stackView has been pinned to the borders of pView.
Что я хочу сделать:
Я хочу изменить выравнивание S1 с «Центра» на «Верх», когда я касаюсь кнопки 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], и ничего из этого не работает.
Что я делаю не так??..Как вообще возможно, что он на самом деле работает и вдруг перестает работать!!??
Кто-нибудь может мне помочь??... это сводит меня с ума.