iOS UILable文字如何在頂部

2021-07-04 04:53:30 字數 2303 閱讀 1229

nov 20th, 2011

xcode中預設的uilabel是垂直居中對齊的,如果你的uilabel高度有多行,當內容少的時候,會自動垂直居中。

如下圖所示(來自stackoverflow):

比較鬱悶的是,uilabel並不提供設定其垂直對齊方式的選項。所以如果你想讓你的文字頂部對齊,那麼就需要自己想辦法了。 stackoverflow.com 上提供了幾種方法來達到頂部對齊的效果。

方法一在顯示文字時,首先計算顯示當前的文字需要多寬和多高,然後將對應的uilabel的大小改變成對應的寬度和高度。此方法的相示意圖如下:

在顯示文字時,首先計算顯示當前的文字需要多寬和多高,然後將對應的uilabel的大小改變成對應的寬度和高度。此方法的相示意圖如下:

123

4567

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似乎又過於「聰明」了。

該方法的示意圖如下:

該方法的**如下:

1

2

for

(inti=

0;i<

newlinestopad;i

++)self

.text=[

self

.text

@"\n"];

方法三最正統的方法,利用objective-c的category特性,修改uilabel的繪製**。示例**如下:

123

4567

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 的基本工具和使用技巧,了解如何將文字從乙個框架轉移到另乙個框架。在此檔案中,將獲取此框架中的重疊文字或不適合文字框架的文字,並將其向右繼續,選擇文字框。在左側的 工具 面板中選擇 選擇工具 然後單擊此文字框以將其選中。在右下角會看到一點紅...