nov 20th, 2011
xcode中預設的uilabel是垂直居中對齊的,如果你的uilabel高度有多行,當內容少的時候,會自動垂直居中。
如下圖所示(來自stackoverflow):
比較鬱悶的是,uilabel並不提供設定其垂直對齊方式的選項。所以如果你想讓你的文字頂部對齊,那麼就需要自己想辦法了。 stackoverflow.com 上提供了幾種方法來達到頂部對齊的效果。
方法一在顯示文字時,首先計算顯示當前的文字需要多寬和多高,然後將對應的uilabel的大小改變成對應的寬度和高度。此方法的相示意圖如下:
在顯示文字時,首先計算顯示當前的文字需要多寬和多高,然後將對應的uilabel的大小改變成對應的寬度和高度。此方法的相示意圖如下:
1234567
8
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似乎又過於「聰明」了。
該方法的示意圖如下:
該方法的**如下:
12
for
(inti=
0;i<
newlinestopad;i
++)self
.text=[
self
.text
@"\n"];
方法三最正統的方法,利用objective-c的category特性,修改uilabel的繪製**。示例**如下:
1234567
891011
1213
1415
1617
1819
2021
2223
2425
2627
2829
// -- 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
如何在天涯新增錨文字鏈結
錨文字,英文名叫anchor text,實際上錨文字就是鏈結文字。錨文字可以做為錨文字所在的頁面的內容的評估。正常來講,頁面中增加的鏈結都會和頁面本身的內容有一定的關係。也就是超級鏈結,簡單一點就是點選特定的文字,能夠跳轉到指定的頁面。相信對於大家來說都不陌生了。錨文字不但可以提公升 本身關鍵詞的排...
如何在textarea的游標位置插入文字
在網上看了很多用js在游標處插入文字的 很多都沒有用,互抄而已,浪費時間。最近用到乙個新方法,可以到達這個需求。ie支援document.selection,firefox,chrome,safari以及opera都有selectionstart和selectionend屬性。效果演示 如下 vie...
InDesign 教程 如何在幀之間流動文字?
歡迎 indesign教程,小編帶大家學習 indesign 的基本工具和使用技巧,了解如何將文字從乙個框架轉移到另乙個框架。在此檔案中,將獲取此框架中的重疊文字或不適合文字框架的文字,並將其向右繼續,選擇文字框。在左側的 工具 面板中選擇 選擇工具 然後單擊此文字框以將其選中。在右下角會看到一點紅...