我有一个UILabel,它有两行文字的空间。有时,当文本太短时,此文本会显示在标签的垂直中心。
如何垂直对齐文本,使其始终位于UILabel的顶部?
我有一个UILabel,它有两行文字的空间。有时,当文本太短时,此文本会显示在标签的垂直中心。
如何垂直对齐文本,使其始终位于UILabel的顶部?
当前回答
为了防止对任何人都有帮助,我也遇到了同样的问题,但只需从使用UILabel切换到使用UITextView就可以解决这个问题。我很欣赏这并不是每个人都适合的,因为功能有点不同。
如果您切换到使用UITextView,则可以关闭所有滚动视图财产以及启用用户交互。。。这将迫使它更像一个标签。
其他回答
我在应用程序中所做的是将UILabel的line属性设置为0,并创建UILabel的底部约束,并确保其设置为>=0,如下图所示。
快速用户界面
在SwiftUI中,所有视图的大小通常为适合其内容的大小,但如果明确使用框架修饰符,则可以使用框架的对齐参数:
Text("Text")
.background(Color.red)
.frame(width: 100, height: 200, alignment: .top)
此外,如果使用任何类型的“堆栈”来排列视图,所有视图都有一个类似于框架的参数,称为对齐:
ZStack(alignment: .top) {
Color.red
Text("Text")
.background(Color.red)
}
在swift中,
let myLabel:UILabel!
使标签的文本适合屏幕,并位于顶部
myLabel.sizeToFit()
使标签字体适合屏幕宽度或特定宽度大小。
myLabel.adjustsFontSizeToFitWidth=是
以及标签的一些文本对齐:
myLabel.textAlignment=.center
myLabel.textAlignment=左侧
myLabel.textAlignment=右侧
myLabel.textAlignment=.自然
myLabel.textAlignment=两端对齐
在UILabel中,无法垂直对齐文本。但是,您可以使用NSString的sizeWithFont:方法动态更改标签的高度,并根据需要设置其x和y。
您可以使用UITextField。它支持contentVerticalAlignment人员,因为它是UIControl的子类。您必须将其userInteractionEnabled设置为NO,以防止用户在其上键入文本。
可以更灵活地在Interface Builder中为标签设置高度约束,使用IBOutlet将其绑定到代码,并更改高度以在具体的垂直位置显示文本。中心和底部对齐示例:
labelHeightConstraint.constant = centerAlignment ? 30 : 15
layoutIfNeeded()