label中显示不同颜色的字以…
来源:互联网 发布:哪里可以买到客户数据 编辑:程序博客网 时间:2024/05/17 06:25
原文地址:label中显示不同颜色的字以及不同字体作者:HunkSmile
//设置颜色属性和字体属性
- (NSAttributedString *)illuminatedString:(NSString*)text
font:(UIFont *)AtFont{
int len = [textlength];
//创建一个可变的属性字符串
NSMutableAttributedString*mutaString = [[[NSMutableAttributedString alloc]initWithString:text] autorelease];
//改变字符串 从1位 长度为1这一段的前景色,即字的颜色。
[mutaStringaddAttribute:(NSString*)(kCTForegroundColorAttributeName)
value:(id)self.stringColor.CGColor
range:NSMakeRange(0, len)];
if (self.keywordColor !=nil)
{
for (NSValue *value inlist)
{
// NSValue*value = [list objectAtIndex:i];
NSRangekeyRange = [value rangeValue];
[mutaString addAttribute:(NSString*)(kCTForegroundColorAttributeName)
value:(id)self.keywordColor.CGColor
range:keyRange];
}
}
//设置部分字段的字体大小与其他的不同
//设置是否使用连字属性,这里设置为0,表示不使用连字属性。标准的英文连字有FI,FL.默认值为1,既是使用标准连字。也就是当搜索到f时候,会把fl当成一个文字。
int nNumType =0;
// float fNum =3.0;
CFNumberRef cfNum =CFNumberCreate(NULL, kCFNumberIntType,&nNumType);
// CFNumberRef cfNum2 =CFNumberCreate(NULL, kCFNumberFloatType,&fNum);
[mutaStringaddAttribute:(NSString *)kCTLigatureAttributeName
value:(id)cfNum
range:NSMakeRange(0, len)];
//空心字
// [mutaStringaddAttribute:(NSString *)kCTStrokeWidthAttributeNamevalue:(id)cfNum2 range:NSMakeRange(0, len)];
CTFontRef ctFont2 =CTFontCreateWithName((CFStringRef)AtFont.fontName,
AtFont.pointSize,
NULL);
[mutaStringaddAttribute:(NSString*)(kCTFontAttributeName)
value:(id)ctFont2
range:NSMakeRange(0, len)];
// CFRelease(ctFont);
CFRelease(ctFont2);
return [[mutaString copy]autorelease];
}
//重绘Text
- (void)drawRect:(CGRect)rect
{
//获取当前label的上下文以便于之后的绘画,这个是一个离屏。
CGContextRef context =UIGraphicsGetCurrentContext();
//压栈,压入图形状态栈中.每个图形上下文维护一个图形状态栈,并不是所有的当前绘画环境的图形状态的元素都被保存。图形状态中不考虑当前路径,所以不保存
//保存现在得上下文图形状态。不管后续对context上绘制什么都不会影响真正得屏幕。
CGContextSaveGState(context);
//x,y轴方向移动
CGContextTranslateCTM(context, 0.0, 0.0);
//缩放x,y轴方向缩放,-1.0为反向1.0倍,坐标系转换,沿x轴翻转180度
// CGContextScaleCTM(context, 1,100);
NSArray *fontArray = [UIFont familyNames];
NSString *fontName;
if ([fontArray count]) {
fontName = [fontArray objectAtIndex:0];
}
//创建一个文本行对象,此对象包含一个字符
CTLineRef line =CTLineCreateWithAttributedString((CFAttributedStringRef)
[selfilluminatedString:self.text font:self.font]); //[UIFontfontWithName:fontName size:60]
//设置文字绘画的起点坐标。
CGContextSetTextPosition(context, 0.0, 0.0);
//在离屏上绘制line
CTLineDraw(line, context);
//将离屏上得内容覆盖到屏幕。此处得做法很像windows绘制中的双缓冲。
CGContextRestoreGState(context);
CFRelease(line);
//CGContextRef myContext =UIGraphicsGetCurrentContext();
//CGContextSaveGState(myContext);
//[self MyColoredPatternPainting:myContextrect:self.bounds];
//CGContextRestoreGState(myContext);
}
- (NSAttributedString *)illuminatedString:(NSString*)text
//
//
//
}
//重绘Text
- (void)drawRect:(CGRect)rect
{
CGContextRef context =UIGraphicsGetCurrentCont
CGContextSaveGState(context);
CGContextTranslateCTM(context, 0.0, 0.0);
// CGContextScaleCTM(context, 1,100);
NSArray *fontArray = [UIFont familyNames];
NSString *fontName;
if ([fontArray count]) {
fontName = [fontArray objectAtIndex:0];
}
CTLineRef line =CTLineCreateWithAttribut
CGContextSetTextPosition
CTLineDraw(line, context);
CGContextRestoreGState(context);
CFRelease(line);
//CGContextRef myContext =UIGraphicsGetCurrentCont
//CGContextSaveGState(myContext);
//[self MyColoredPatternPainting
//CGContextRestoreGState(myContext);
}
FROM:http://www.cocoachina.com/bbs/read.php?tid-69385-page-1.html
- label中显示不同颜色的字以…
- label中不同颜色字体的显示
- label中显示不同颜色的字以及不同字体,字体高亮,DIY label
- label中显示不同颜色的字以及不同字体,字体高亮,DIY label
- label显示不同颜色的字体
- label显示不同颜色的文字
- Qt中在label中显示不同颜色的字符
- label 中可以显示不同字体,不同颜色 的text
- iOS 一个label中显示不同颜色的文字
- iOS在一个label中显示不同颜色的字体
- #Qt入门#---------label中显示不同颜色的字符
- label中显示不同颜色的字以及不同字体,字体高亮
- iOS开发 label上显示不同颜色不同大小的字
- Label显示不同颜色、字体的文字
- Label显示不同颜色、字体的文字
- 一个label 里面放不同颜色的字
- ios Label显示不同颜色文字
- 如何设置在一个Label上显示不同颜色的text
- 产品经理实用工具
- TableView中画Cell的三种方法
- 利用WebView在ipad下实现滚…
- iPhone内存管理面面观 对象…
- 获取设备状态,是否插入耳机…
- label中显示不同颜色的字以…
- iphone之MPMoviePlayer 视频…
- UITableView 的cell设置自适…
- iphone之navigationItem 添…
- iphone之UISegmentedControl
- iPhone读取和写入plist文件
- 如何将创作的app发布到苹果…
- iPhone之UISplitViewControl…
- html5笔记1 入门