將文本垂直對齊到UILabel中的頂部我有一個UILabel有兩行文字的空格。有時,當文本太短時,此文本將顯示在標簽的垂直中心。如何垂直對齊文本,使其始終位于UILabel?
3 回答

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
設置新的文本: myLabel.text = @"Some Text"
設置 maximum number
為0行(自動): myLabel.numberOfLines = 0
將標簽的框架設置為最大大?。?/trans> myLabel.frame = CGRectMake(20,20,200,800)
打電話 sizeToFit
以縮小幀大小,使內容只適合: [myLabel sizeToFit]

慕森卡
TA貢獻1806條經驗 獲得超8個贊
for(int i=1; i< newLinesToPad; i++) self.text = [self.text stringByAppendingString:@"\n"];
for(int i=0; i<newLinesToPad; i++) self.text = [self.text stringByAppendingString:@"\n "];
UILabels
@" \n@%"
"\n@%"
// -- file: UILabel+VerticalAlign.h#pragma mark VerticalAlign@interface UILabel (VerticalAlign)- (void)alignTop; - (void)alignBottom;@end// -- file: UILabel+VerticalAlign.m@implementation UILabel (VerticalAlign)- (void)alignTop { CGSize fontSize = [self.text sizeWithFont:self.font]; double finalHeight = fontSize.height * self.numberOfLines; double finalWidth = self.frame.size.width; //expected width of label CGSize theStringSize = [self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(finalWidth, finalHeight) lineBreakMode:self.lineBreakMode]; int newLinesToPad = (finalHeight - theStringSize.height) / fontSize.height; for(int i=0; i<newLinesToPad; i++) self.text = [self.text stringByAppendingString:@"\n "];}- (void)alignBottom { CGSize fontSize = [self.text sizeWithFont:self.font]; double finalHeight = fontSize.height * self.numberOfLines; double finalWidth = self.frame.size.width; //expected width of label CGSize theStringSize = [self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(finalWidth, finalHeight) lineBreakMode:self.lineBreakMode]; int newLinesToPad = (finalHeight - theStringSize.height) / fontSize.height; for(int i=0; i<newLinesToPad; i++) self.text = [NSString stringWithFormat:@" \n%@",self.text];}@end
[yourLabel alignTop];
[yourLabel alignBottom];
- 3 回答
- 0 關注
- 792 瀏覽
添加回答
舉報
0/150
提交
取消