code中預設的uilabel是垂直居中對齊的,如果你的uilabel高度有多行,當內容少的時候,會自動垂直居中。
比較鬱悶的是,uilabel並不提供設定其垂直對齊方式的選項。所以如果你想讓你的文字頂部對齊,那麼就需要自己想辦法了。
stackoverflow.com 上提供了幾種方法來達到頂部對齊的效果。
方法一:
在顯示文字時,首先計算顯示當前的文字需要多寬和多高,然後將對應的uilabel的大小改變成對應的寬度和高度。
該方法的**如下:
cgsize
maximumsize
=cgsizemake
(300
,9999
);nsstring
*datestring =@
"the date today is january 1st, 1999"
;uifont
*datefont =[
uifont
fontwithname
:@"helvetica"
size:14
];cgsize
datestringsize =[
datestring sizewithfont
:datefont
constrainedtosize
:maximumsize
linebreakmode
:self
.datelabel
.linebreakmode
];cgrect
dateframe
=cgrectmake(10
,10,300
,datestringsize
.height
);self
.datelabel
.frame
=dateframe
;
方法二:
此方法更加簡單粗暴,但是很有效。其方法是在文字後面加多一些\n。
需要注意的是,\n後還得加至少乙個空格,否則多餘的\n會被uilabel忽略。從這一點上看,uilabel似乎又過於「聰明」了。
該方法的**如下:
for(inti=
0;i<
newlinestopad;i
++)self
.text =[
self.:@
"\n "
];
方法三:
最正統的方法,利用objective-c的category特性,修改uilabel的繪製**。示例**如下:
// -- file: uilabel+verticalalign.h
#pragma
mark
verticalalign
@inte***ce
uilabel
(verticalalign)-
(void
)aligntop;-
(void
)alignbottom
;@end
// -- file: uilabel+verticalalign.m
@implementation
uilabel
(verticalalign)-
(void
)aligntop -(
void
)alignbottom
@end
UIlabel 中的字型對齊
我們平時對於uilabel對齊只要設定想應的 firstlabel.frame.miny secondlabel.frame.miny 就能實現label的對齊,但是有的時候字型的大小不一樣就可能會造成 label.frame.miny,一樣,而字型由於font大小不一樣,而font 一般是居中 上...
UILabel 上下左右對齊
在ios中預設的uilabel中的文字在豎直方向上只能居中對齊,博主參考國外 從uilabel繼承了乙個新類,實現了居上對齊,居中對齊,居下對齊。具體如下 cpp view plain copy myuilabel.h created by yexiaozi 007 on 3 4 13.import...
讓UILabel的文字頂部對齊
xcode中預設的uilabel是垂直居中對齊的,如果你的uilabel高度有多行,當內容少的時候,會自動垂直居中。如下圖所示 來自stackoverflow 比較鬱悶的是,uilabel並不提供設定其垂直對齊方式的選項。所以如果你想讓你的文字頂部對齊,那麼就需要自己想辦法了。stackoverfl...