Mrw*_*lfy 26 iphone xcode objective-c ios
有没有办法"顶部对齐"UILabel,即文本是否粘贴到标签视图的顶部?与垂直居中对齐相反,或者在视图中心浮动,默认情况下是什么?
这是三个标签的图像,左,右和中心对齐,以及对齐中心和顶部的UITextView.无论视图的垂直尺寸如何,textView的文本都会粘到顶部.我可以用标签做同样的事情吗?

Abo*_*ein 32
有一个解决方法:
constraint到您UILabel想要的最大高度|宽度.number of lines零.storyboard仅适合一行.UILabel调用文本后的代码中sizeToFit.这将使您UILabel在所需的最大宽度和高度的范围内调整大小,文本将始终顶部对齐.
Mrw*_*lfy 12
我在上面的问题评论中使用了nevan king上面连接的答案:在UILabel中垂直对齐文本
我使用的代码在这里:
- (void)setUILabelTextWithVerticalAlignTop:(NSString *)theText {
CGSize labelSize = CGSizeMake(250, 300);
CGSize theStringSize = [theText sizeWithFont:targetLabel.font constrainedToSize:labelSize lineBreakMode:targetLabel.lineBreakMode];
targetLabel.frame = CGRectMake(targetLabel.frame.origin.x, targetLabel.frame.origin.y, theStringSize.width, theStringSize.height);
targetLabel.text = theText;
}
//linked to a button that sets the text from a UITextView to the label.
- (IBAction)setText:(id)sender {
[sourceText resignFirstResponder];
[self setUILabelTextWithVerticalAlignTop:sourceText.text];
[targetLabel setNumberOfLines:0];
[targetLabel sizeToFit];
}
Run Code Online (Sandbox Code Playgroud)
这是项目:
owolf.net/uploads/StackOverflow/verticalAlignUILabel.zip
小智 9
UILabel默认情况下,无法在iOS中设置a的垂直对齐方式.相反,您将需要使用其中一种sizeWithFont方法NSString.您使用哪一个取决于您是否需要多行或单行标签.sizeWithFont:forWidth:lineBreakMode:可用于单行标签,同时sizeWithFont:constrainedToSize:lineBreakMode:可用于多行标签.您可以使用font相关标签的属性轻松加载font参数.您可以在此处查看有关使用这些功能的更多详细信息.
这些方法将CGSize根据文本中的文本返回标签最小尺寸的结构NSString.一旦您拥有正确的标签尺寸,您就可以轻松地将其放置在超级视图的顶部,并且它看起来是顶部对齐的.
| 归档时间: |
|
| 查看次数: |
44532 次 |
| 最近记录: |