iOS之UILabel字体加粗等属性和特效
2016-09-12 10:54
453 查看
UILabel垂直居上对齐[label sizeToFit];
//设置文字过长时的显示格式
//设置label的行数,这个可以根据上节的UITextView自适应高度
让label自适应里面的文字,自动调整宽度和高度的
这样就可以对s赋值让其自动调整其大小了。
UILabel跑马灯效果
//http://www.cocoachina.com/bbs/read.php?tid=74540
//////////////////////////////////////////////////////////////////////////////////
//设置文字过长时的显示格式
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;
//设置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.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范围内,对应0~255的颜色值范围。 - (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines; //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了. - (void)drawTextInRect:(CGRect)rect; eg: UILabel *label = [[UILabelalloc] initWithFrame:CGRectMake(0, 0, 75, 40)]; //声明UIlbel并指定其位置和长宽 label.backgroundColor = [UIColorclearColor]; //设置label的背景色,这里设置为透明色。 label.font = [UIFont fontWithName:@"Helvetica-Bold" size:13]; //设置label的字体和字体大小。 //lable的旋转 label.transform = CGAffineTransformMakeRotation(0.1); //设置label的旋转角度 label.text = @“helloworld”; //设置label所显示的文本 label.textColor = [UIColorwhiteColor]; //设置文本的颜色 label.shadowColor = [UIColorcolorWithWhite:0.1falpha:0.8f]; //设置文本的阴影色彩和透明度。 label.shadowOffset = CGSizeMake(2.0f, 2.0f); //设置阴影的倾斜角度。 label.textAlignment = UITextAlignmentCenter; //设置文本在label中显示的位置,这里为居中。 //换行技巧:如下换行可实现多行显示,但要求label有足够的宽度。 label.lineBreakMode = UILineBreakModeWordWrap; //指定换行模式 label.numberOfLines = 2; // 指定label的行数
让label自适应里面的文字,自动调整宽度和高度的
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];这个frame是初设的,没关系,后面还会重新设置其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赋值让其自动调整其大小了。
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; } // 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 外部调用 - (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- d02e 7239.html 让UILabel具有链接功能,点击后调用safari打开网址 [objc] view plain copy 在CODE上查看代码片派生到我的代码片 //侬侬官网连接 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]]; }
相关文章推荐
- UILabel字体加粗等属性和特效
- UILabel字体加粗等属性和特效
- UILabel字体加粗等属性和特效
- UILabel字体加粗等属性和特效
- UILabel字体加粗等属性和特效
- UILabel字体加粗 IOS
- UILabel字体加粗 iOS
- iOS UILabel 字体加粗
- iOS开发-基础:UILabel字体加粗
- iOS开发-UILabel的属性、特效及其自适应
- UILabel字体加粗与倾斜--iOS开发
- 在iOS中UILabel作为一个文本标签,在实现程序中几乎每个页面都会用到UILabel,UILabel的常用属性:textColor(文本颜色),text(文本值),font(文本字体),textA
- UILabel字体加粗 IOS
- UILabel字体加粗
- ios开发 加粗字体
- iOS 在UILabel显示不同的字体和颜色
- iOS开发笔记--UILabel的相关属性设置
- [iOS]UILabel改变某个范围的字符颜色和字体
- 给iOS开发新手送点福利,简述UILabel的属性和用法
- iOS 在UILabel显示不同的字体和颜色(转)