是)我有的:
这是我的视图层次结构:
- 一个名为 b1 的按钮,该按钮具有一个名为“changeAlignment”的操作,该操作在 touch Up Inside 时被激活。
- 一个名为 Pview 的 UIView,带有框架 (0,100,414,100)。
- 一个名为 S1 的水平 UIStackView,其对齐属性设置为“中心”。此 stackView 已固定到 pView 的边框。
- 一个名为 S2 的水平 UIStackView,其对齐属性设置为“填充”,其中包含两个标签。
- 一个名为 S1 的水平 UIStackView,其对齐属性设置为“中心”。此 stackView 已固定到 pView 的边框。
我想做的事:
当我触摸按钮 b1 时,我想将 S1 的对齐方式从“中心”更改为“顶部”。
我试过的
- (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],但这些都不起作用。
我做错了什么??..它怎么可能真的起作用并突然停止工作!??
任何人都可以帮助我吗??...这让我发疯。