UILabel UIFont--字体属性和一些特效【转】

UILabel UIFont

//UILabel垂直居上对齐:
[label sizeToFit];
//设置文字过长时的显示格式
label.lineBreakMode = UILineBreakModeWordWrap;
typedefenum {
    UILineBreakModeWordWrap =0,
    UILineBreakModeClip,//截去多余部分  
    UILineBreakModeHeadTruncation, //截去头部
    UILineBreakModeTailTruncation,//截去尾部 
    UILineBreakModeMiddleTruncation,//截去中间
} UILineBreakMode;
//设置label的行数,这个可以根据上节的UITextView自适应高度
label.numberOfLines = 2;
label.lineBreakMode = UILineBreakModeWordWrap;
//字体相关属性设置
//设置文字对齐位置,居左,居中,居右 
label.textAlignment =  UITextAlignmentCenter;
//设置显示文字 
label.text = @ "123" ;
//设置文字颜色,可以有多种颜色可以选择
label.textColor = [UIColor whiteColor];
//设置背景颜色
label.backgroundColor = [UIColor blackColor];
//设置字体:粗体,正常的是 SystemFontOfSize,调用系统的字体配置 
label.font = [UIFont boldSystemFontOfSize:20];
label.font = [UIFont fontWithName:@ "Arial Rounded MT Bold"  size:(36.0)];
//[UIFont fontWithName:@ "Arial" size:14.0]]; //非加粗

//设置文本是否高亮和高亮时的颜色
scoreLabel.highlighted = YES; 
scoreLabel.highlightedTextColor = [UIColor orangeColor]; 

//设置阴影的颜色和阴影的偏移位置 
scoreLabel.shadowColor = [UIColor redColor]; 
scoreLabel.shadowOffset = CGSizeMake(1.0,1.0); 


//设置是否能与用户进行交互 
scoreLabel.userInteractionEnabled = YES;  

//设置label中的文字是否可变,默认值是YES  
scoreLabel.enabled = NO;


//设置字体大小是否适应label宽度 
label.adjustsFontSizeToFitWidth = YES; 
//如果adjustsFontSizeToFitWidth属性设置为YES,下面这个属性就来控制文本基线的行为
coreLabel.baselineAdjustment = UIBaselineAdjustmentNone
typedefenum {
    UIBaselineAdjustmentAlignBaselines =0,// default. used when shrinking text to position based on the original baseline
    UIBaselineAdjustmentAlignCenters,
    UIBaselineAdjustmentNone,
} UIBaselineAdjustment;

//最小文字号数
minimumFontSize

//设置背景色为透明 
scoreLabel.backgroudColor=[UIColor clearColor];

//自定义的颜色:
scoreLabel.textColor = [UIColor colorWithRed:1.0f green:50.0f blue:0.0f alpha:1.0f];

//UIColor 里的 RGB 值是CGFloat类型的在0~1范围内,对应0~255的颜色值范围。
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines;

//改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
- (void)drawTextInRect:(CGRect)rect;

//声明UIlbel并指定其位置和长宽
UILabel *label = [[UILabelalloc] initWithFrame:CGRectMake(0, 0, 75, 40)]; 

//设置label的背景色,这里设置为透明色。
 label.backgroundColor = [UIColorclearColor]; 
//设置label的字体和字体大小。 
label.font = [UIFont fontWithName:@"Helvetica-Bold" size:13];  

//lable的旋转
 label.transform = CGAffineTransformMakeRotation(0.1);     //设置label的旋转角度

//设置文本的阴影色彩和透明度。
label.shadowColor = [UIColorcolorWithWhite:0.1falpha:0.8f];  

//设置阴影的倾斜角度。  
label.shadowOffset = CGSizeMake(2.0f, 2.0f);     

//换行:如下换行可实现多行显示,但要求label有足够的宽度。
 label.lineBreakMode = UILineBreakModeWordWrap;     


//**label文字自动调整宽度和高度**
//初始化
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
//初始行数为0
[label setNumberOfLines:0];
//label显示文字
NSString *s = @"string......";
//设置字体
UIFont *font = [UIFont fontWithName:@"Arial" size:12];
//自定义大小
CGSize size = CGSizeMake(320,2000);
//重设label的size
CGSize labelsize = [s sizeWithFont:font constrainedToSize:size 
lineBreakMode:UILineBreakModeWordWrap];
//重设frame
[label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)];
[self.view addSubView:label];
这样就可以对s赋值让其自动调整其大小了。

//UILabel跑马灯效果

http://www.cocoachina.com/bbs/read.php?tid=74540

#import <UIKit/UIKit.h>
@interface TextFlowView : UIView { 
    //显示文本的标签
    UILabel *_firstLabel;
    UILabel *_secondLabel;   
    //定时器
    NSTimer *_timer;
    //显示的文本
    NSString *_text;
    //是否需要滚动
    BOOL _needFlow;
    //控件的框架大小
    CGRect _frame;
    //文本的字体
    UIFont *_font;
    //当前第一个控件的索引
    NSInteger _startIndex;
    //定时器每次执行偏移后,累计的偏移量之和
    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 内部调用
#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];
}

//关闭定时器
- (void)cancelRun
{
    if (_timer) 
    {
        [_timerinvalidate];
    }
}

//定时器执行的操作
- (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;
}



- (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) 
    {
         rect = [selfmoveNewPoint:CGPointMake(_XOffset, startYOffset) rect:rect];
         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];
        }

    }
    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 外部调用
- (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具有链接功能,点击后调用safari打开网址
   UILabel *labelGovUrl = [[UILabel alloc] initWithFrame:CGRectMake(73.0, 330.0, 180.0, 40.0)];    
    labelGovUrl.autoresizingMask = (UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);    
    labelGovUrl.text = @"侬侬官网 >";    
    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]];    
}    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值