通过单击另一个按钮更改按钮文本垂直对齐方式

Change button text vertical alignment by clicking another button

我有两个按钮,我们称它们为 buttonA 和 buttonB。

我想要实现的是,当我单击按钮 B 时,我希望按钮 A 和按钮 B 都更改其中文本的垂直对齐方式。

我试过以下方法:

func changeAllign() {
     buttonA.contentVerticalAlignment = UIControlContentVerticalAlignment.Top
     buttonB.contentVerticalAlignment = UIControlContentVerticalAlignment.Bottom
}

由于某些原因,这不起作用。当我单击 buttonB 时,它会将其文本对齐到底部,但 buttonA 将保持不变。然后,如果我 hold/or 单击按钮 A,文本将对齐到顶部。

是否可以做到无需我先点击它就可以改变它?

您需要明确告诉按钮在更改内容对齐方式后重新布局其子视图:

func changeAllign() {
     buttonA.contentVerticalAlignment = UIControlContentVerticalAlignment.Top
     buttonA.setNeedsLayout()
     buttonB.contentVerticalAlignment = UIControlContentVerticalAlignment.Bottom
     buttonB.setNeedsLayout()
}