UILabel字體加粗等屬性和特效

UILabel垂直居上對齊[label sizeToFit];

//設(shè)置文字過長時的顯示格式

label.lineBreakMode = UILineBreakModeWordWrap;

typedefenum {

UILineBreakModeWordWrap =0,? ? ? ? ? // Wrap at word boundaries

UILineBreakModeCharacterWrap,? ? ? ? ? // Wrap at character boundaries

UILineBreakModeClip,? ? ? ? ? //截去多余部分 Simply clip when it hits the end of the rect截去多余部分

UILineBreakModeHeadTruncation, //截去頭部Truncate at head of line: "...wxyz". Will truncate multiline text on first line

UILineBreakModeTailTruncation,//截去尾部 Truncate at tail of line: "abcd...". Will truncate multiline text on last line

UILineBreakModeMiddleTruncation,//截去中間 Truncate middle of line:? "ab...yz". Will truncate multiline text in the middle

} UILineBreakMode;

//設(shè)置label的行數(shù),這個可以根據(jù)上節(jié)的UITextView自適應高度

label.numberOfLines = 2;

label.lineBreakMode = UILineBreakModeWordWrap;

label.textAlignment =? UITextAlignmentCenter;//設(shè)置文字對齊位置,居左,居中,居右

label.text = @ "123" ;//設(shè)置顯示文字

//設(shè)置文字顏色,可以有多種顏色可以選擇

label.textColor = [UIColor whiteColor];

label.backgroundColor = [UIColor blackColor];

//設(shè)置字體:粗體,正常的是 SystemFontOfSize,調(diào)用系統(tǒng)的字體配置

label.font = [UIFont boldSystemFontOfSize:20];

label.font = [UIFont fontWithName:@ "Arial Rounded MT Bold"? size:(36.0)];

//[UIFont fontWithName:@ "Arial" size:14.0]]; //非加粗

//設(shè)置文本是否高亮和高亮時的顏色

scoreLabel.highlighted = YES;

scoreLabel.highlightedTextColor = [UIColor orangeColor];

//設(shè)置陰影的顏色和陰影的偏移位置

scoreLabel.shadowColor = [UIColor redColor];

scoreLabel.shadowOffset = CGSizeMake(1.0,1.0);

//設(shè)置是否能與用戶進行交互

scoreLabel.userInteractionEnabled = YES;

//設(shè)置label中的文字是否可變,默認值是YES

scoreLabel.enabled = NO;

//設(shè)置字體大小是否適應label寬度

label.adjustsFontSizeToFitWidth = YES;

//如果adjustsFontSizeToFitWidth屬性設(shè)置為YES,這個屬性就來控制文本基線的行為

coreLabel.baselineAdjustment = UIBaselineAdjustmentNone

typedefenum {

UIBaselineAdjustmentAlignBaselines =0,// default. used when shrinking text to position based on the original baseline

UIBaselineAdjustmentAlignCenters,

UIBaselineAdjustmentNone,

} UIBaselineAdjustment;

//最小文字號數(shù)

minimumFontSize


設(shè)置背景色為透明

scoreLabel.backgroudColor=[UIColor clearColor];

自定義的顏色:

scoreLabel.backgroudColor=[UIColor clearColor];

UIColor *color = [UIColor colorWithRed:1.0f green:50.0f blue:0.0f alpha:1.0f];

scoreLabel.textColor = [UIColor color]

//UIColor 里的 RGB 值是CGFloat類型的在0~1范圍內(nèi),對應0~255的顏色值范圍。

- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines;

//改變繪文字屬性.重寫時調(diào)用super可以按默認圖形屬性繪制,若自己完全重寫繪制函數(shù),就不用調(diào)用super了.

- (void)drawTextInRect:(CGRect)rect;

eg:

UILabel *label = [[UILabelalloc] initWithFrame:CGRectMake(0, 0, 75, 40)];? //聲明UIlbel并指定其位置和長寬

label.backgroundColor = [UIColorclearColor];? //設(shè)置label的背景色,這里設(shè)置為透明色。

label.font = [UIFont fontWithName:@"Helvetica-Bold" size:13];? //設(shè)置label的字體和字體大小。

//lable的旋轉(zhuǎn)

label.transform = CGAffineTransformMakeRotation(0.1);? ? //設(shè)置label的旋轉(zhuǎn)角度

label.text = @“helloworld”;? //設(shè)置label所顯示的文本

label.textColor = [UIColorwhiteColor];? ? //設(shè)置文本的顏色

label.shadowColor = [UIColorcolorWithWhite:0.1falpha:0.8f];? ? //設(shè)置文本的陰影色彩和透明度。

label.shadowOffset = CGSizeMake(2.0f, 2.0f);? ? //設(shè)置陰影的傾斜角度。

label.textAlignment = UITextAlignmentCenter;? ? //設(shè)置文本在label中顯示的位置,這里為居中。

//換行技巧:如下?lián)Q行可實現(xiàn)多行顯示,但要求label有足夠的寬度。

label.lineBreakMode = UILineBreakModeWordWrap;? ? //指定換行模式

label.numberOfLines = 2;? ? // 指定label的行數(shù)

讓label自適應里面的文字,自動調(diào)整寬度和高度的

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];這個frame是初設(shè)的,沒關(guān)系,后面還會重新設(shè)置其size。

[label setNumberOfLines:0];

NSString *s = @"string......";

UIFont *font = [UIFont fontWithName:@"Arial" size:12];

CGSize size = CGSizeMake(320,2000);

CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];

[label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)];

[self.view addSubView:label];

這樣就可以對s賦值讓其自動調(diào)整其大小了。

UILabel跑馬燈效果//http://www.cocoachina.com/bbs/read.php?tid=74540#import@interface TextFlowView : UIView {

//顯示文本的標簽

UILabel *_firstLabel;

UILabel *_secondLabel;

//定時器

NSTimer *_timer;

//顯示的文本

NSString *_text;

//是否需要滾動

BOOL _needFlow;

//控件的框架大小

CGRect _frame;

//文本的字體

UIFont *_font;

//當前第一個控件的索引

NSInteger _startIndex;

//定時器每次執(zhí)行偏移后,累計的偏移量之和

CGFloat _XOffset;

//文本顯示一行,需要的框架大小

CGSize _textSize;

}

- (id)initWithFrame:(CGRect)frame Text:(NSString *)text;

- (void)setFont:(UIFont *)font;

- (void)setText:(NSString *)text;

@end

//////////////////////////////////////////////////////////////////////////////////

#import "TextFlowView.h"

@implementation TextFlowView

#pragma mark -

#pragma mark 內(nèi)部調(diào)用

#define SPACE_WIDTH 50

#define LABEL_NUM 2

//改變一個TRect的起始點位置,但是其終止店點的位置不變,因此會導致整個框架大小的變化

- (CGRect)moveNewPoint:(CGPoint)point rect:(CGRect)rect

{

CGSize tmpSize;

tmpSize.height = rect.size.height + (rect.origin.y - point.y);

tmpSize.width = rect.size.width + (rect.origin.x - point.x);

returnCGRectMake(point.x, point.y, tmpSize.width, tmpSize.height);

}

//開啟定時器

- (void)startRun

{

_timer = [NSTimerscheduledTimerWithTimeInterval:0.02target:selfselector:@selector(timerAction) userInfo:nilrepeats:YES];

}

//關(guān)閉定時器

- (void)cancelRun

{

if (_timer)

{

[_timerinvalidate];

}

}

//定時器執(zhí)行的操作

- (void)timerAction

{

staticCGFloat offsetOnce = -1;

_XOffset += offsetOnce;

if (_XOffset +? _textSize.width <= 0)

{

_XOffset += _textSize.width;

_XOffset += SPACE_WIDTH;

}

[selfsetNeedsDisplay];

}

//計算在給定字體下,文本僅顯示一行需要的框架大小

- (CGSize)computeTextSize:(NSString *)text

{

if (text == nil)

{

returnCGSizeMake(0, 0);

}

CGSize boundSize = CGSizeMake(10000, 100);

CGSize stringSize = [_textsizeWithFont:_fontconstrainedToSize:boundSize lineBreakMode:UILineBreakModeWordWrap];

return stringSize;

}

- (id)initWithFrame:(CGRect)frame Text:(NSString *)text

{

self = [superinitWithFrame:frame];

if (self)

{

_text = [text retain];

_frame = frame;

//默認的字體大小

_font = [UIFontsystemFontOfSize:16.0F];

self.backgroundColor = [UIColorredColor];

//初始化標簽

//判斷是否需要滾動效果

_textSize = [selfcomputeTextSize:text];

//需要滾動效果

if (_textSize.width > frame.size.width)

{

_needFlow = YES;

[selfstartRun];

}

}

returnself;

}

// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect

{

CGContextRef context= UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [UIColorwhiteColor].CGColor);

// Drawing code

CGFloat startYOffset = (rect.size.height - _textSize.height)/2;

CGPoint origin = rect.origin;

if (_needFlow == YES)

{

//? ? ? ? NSLog(@"OFFSETX:%f", _XOffset);

//? ? ? ? NSLog(@"textwidth:%f",_textSize.width);

rect = [selfmoveNewPoint:CGPointMake(_XOffset, startYOffset) rect:rect];

//? ? ? ? NSLog(@"rect X:%f? Y:%f",rect.origin.x, rect.origin.y);

//? ? ? ? NSLog(@"rect W:%f? H:%f", rect.size.width, rect.size.height);

while (rect.origin.x <= rect.size.width+rect.origin.x)

{

[_textdrawInRect:rect withFont:_font];

rect = [selfmoveNewPoint:CGPointMake(rect.origin.x+_textSize.width+SPACE_WIDTH, rect.origin.y) rect:rect];

//? ? ? ? ? ? NSLog(@"inner->rect X:%f? Y:%f",rect.origin.x, rect.origin.y);

//? ? ? ? ? ? NSLog(@"inner->rect W:%f? H:%f", rect.size.width, rect.size.height);

}

}

else

{

//在控件的中間繪制文本

origin.x = (rect.size.width - _textSize.width)/2;

origin.y = (rect.size.height - _textSize.height)/2;

rect.origin = origin;

[_textdrawInRect:rect withFont:_font];

}

}

- (void)dealloc

{

[_textrelease];

[superdealloc];

}

#pragma mark -

#pragma mark 外部調(diào)用

- (void)setFont:(UIFont *)font

{

_font = font;

}

- (void)setText:(NSString *)text

{

[_textrelease];

_text = [text retain];

}

@end


美化UILabel中的字體代碼分享

http://www.devdiv.com/iOS_iPhone-%E7%BE%8E%E5%8C%96UILabel%E4%B8%AD%E7%9A%84%E5%AD%97%E4%BD%93%E4%BB%A3%E7%A0%81%E5%88%86%E4%BA%AB-thread-122319-1-1.html

UILabel跑馬燈效果

http://hi.baidu.com/suxinde2009/blog/item/5bcd0e60dd9bb77f0d33fac3.html

分享一個可垂直頂端對齊的UILabel

http://www.devdiv.com/%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%AA%E5%8F%AF%E5%9E%82%E7%9B%B4%E9%A1%B6%E7%AB%AF%E5%AF%B9%E9%BD%90%E7%9A%84UILabel-weblog-64796-7239.html

讓UILabel具有鏈接功能,點擊后調(diào)用safari打開網(wǎng)址

[objc] view plain copy 在CODE上查看代碼片派生到我的代碼片

//儂儂官網(wǎng)連接

UILabel *labelGovUrl = [[UILabel alloc] initWithFrame:CGRectMake(73.0, 330.0, 180.0, 40.0)];

labelGovUrl.autoresizingMask = (UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);

labelGovUrl.text = @"儂儂官網(wǎng) >";

labelGovUrl.backgroundColor = [UIColor clearColor];

labelGovUrl.textColor = [UIColor whiteColor];

labelGovUrl.font = [UIFont fontWithName:@"Helvetica-Bold" size:14];

labelGovUrl.userInteractionEnabled = YES;

labelGovUrl.tag = K_NNGOV_WEBSITE_LABEL_URL;

UITapGestureRecognizer *tapGesture =

[[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openURL:)] autorelease];

[labelGovUrl addGestureRecognizer:tapGesture];

[self.view addSubview:labelGovUrl];

[labelGovUrl release];

-(void)openURL:(UITapGestureRecognizer *)gesture{

NSInteger tag = gesture.view.tag;

NSString *url = nil;

if (tag == K_NNWEIBO_LABEL_URL) {

url = @"http://t.qq.com/yourgame/";

}

if(tag == K_NNGOV_WEBSITE_LABEL_URL){

url = @"http://www.zjnn.cn/";

}

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容