- 浏览: 223577 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
15197442045:
求demo,谢谢
IOS 后台执行代码(voip socket) -
15197442045:
我用了你这种方式,还是不能后台运行~~~~~
IOS 后台执行代码(voip socket) -
wlpych:
这个m_socket,从哪获得啊,什么方法?用的pjsip。求 ...
IOS 后台执行代码(voip socket)
在ios中,进行文本样式设计目前有2种方式: UIWebView ,core text
下面我将通过一个例子来讲述一下如何使用coretext来进行文本样式的添加。
本文章参考:
http://web.archiveorange.com/archive/v/nagQXJDPDGVNz9LFLmSK
http://www.cocoanetics.com/2011/01/befriending-core-text/
首先,进行创建一个UIView的子类,并实现如下代码:
- (void)drawRect:(CGRect)rect {
// Drawing code.
//创建要输出的字符串
NSString *longText = @”袁唯来来”;
//创建AttributeString
NSMutableAttributedString *string = [[NSMutableAttributedStringalloc]
initWithString:longText];
//创建字体以及字体大小
CTFontRef helvetica = CTFontCreateWithName(CFSTR(”Helvetica”),14.0, NULL);
CTFontRef helveticaBold =CTFontCreateWithName(CFSTR(”Helvetica-Bold”), 14.0, NULL);
//添加字体 目标字符串从下标0开始到字符串结尾
[string addAttribute:(id)kCTFontAttributeName
value:(id)helvetica
range:NSMakeRange(0, [string length])];
//添加字体 目标字符串从下标0开始,截止到4个单位的长度
[string addAttribute:(id)kCTFontAttributeName
value:(id)helveticaBold
range:NSMakeRange(0, 4)];
//添加字体 目标字符串从下标6开始,截止到5个单位长度
[string addAttribute:(id)kCTFontAttributeName
value:(id)helveticaBold
range:NSMakeRange(6, 5)];
//添加字体 目标字符串从下标109开始,截止到9个单位长度
[string addAttribute:(id)kCTFontAttributeName
value:(id)helveticaBold
range:NSMakeRange(109, 9)];
//添加字体 目标字符串从下标223开始,截止到6个单位长度
[string addAttribute:(id)kCTFontAttributeName
value:(id)helveticaBold
range:NSMakeRange(223, 6)];
//添加颜色,目标字符串从下标0开始,截止到4个单位长度
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor blueColor].CGColor
range:NSMakeRange(0, 4)];
//添加过程同上
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor redColor].CGColor
range:NSMakeRange(18, 3)];
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor greenColor].CGColor
range:NSMakeRange(657, 6)];
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor blueColor].CGColor
range:NSMakeRange(153, 6)];
//创建文本对齐方式
CTTextAlignment alignment = kCTLeftTextAlignment;//左对齐kCTRightTextAlignment为右对齐
CTParagraphStyleSetting alignmentStyle;
alignmentStyle.spec=kCTParagraphStyleSpecifierAlignment;//指定为对齐属性
alignmentStyle.valueSize=sizeof(alignment);
alignmentStyle.value=&alignment;
//创建文本行间距
CGFloat lineSpace=5.0f;//间距数据
CTParagraphStyleSetting lineSpaceStyle;
lineSpaceStyle.spec=kCTParagraphStyleSpecifierLineSpacing;//指定为行间距属性
lineSpaceStyle.valueSize=sizeof(lineSpace);
lineSpaceStyle.value=&lineSpace;
//创建样式数组
CTParagraphStyleSetting settings[]={
alignmentStyle,lineSpaceStyle
};
//设置样式
CTParagraphStyleRef paragraphStyle =CTParagraphStyleCreate(settings, sizeof(settings));
//给字符串添加样式attribute
[string addAttribute:(id)kCTParagraphStyleAttributeName
value:(id)paragraphStyle
range:NSMakeRange(0, [string length])];
// layout master
CTFramesetterRef framesetter =CTFramesetterCreateWithAttributedString(
(CFAttributedStringRef)string);
CGMutablePathRef leftColumnPath = CGPathCreateMutable();
CGPathAddRect(leftColumnPath, NULL,
CGRectMake(0, 0,
self.bounds.size.width,
self.bounds.size.height));
CTFrameRef leftFrame =CTFramesetterCreateFrame(framesetter,
CFRangeMake(0, 0),
leftColumnPath, NULL);
// flip the coordinate system
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextTranslateCTM(context, 0, self.bounds.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
// draw
CTFrameDraw(leftFrame, context);
// cleanup
CGPathRelease(leftColumnPath);
CFRelease(framesetter);
CFRelease(helvetica);
CFRelease(helveticaBold);
[string release];
UIGraphicsPushContext(context);
}
下面我将通过一个例子来讲述一下如何使用coretext来进行文本样式的添加。
本文章参考:
http://web.archiveorange.com/archive/v/nagQXJDPDGVNz9LFLmSK
http://www.cocoanetics.com/2011/01/befriending-core-text/
首先,进行创建一个UIView的子类,并实现如下代码:
- (void)drawRect:(CGRect)rect {
// Drawing code.
//创建要输出的字符串
NSString *longText = @”袁唯来来”;
//创建AttributeString
NSMutableAttributedString *string = [[NSMutableAttributedStringalloc]
initWithString:longText];
//创建字体以及字体大小
CTFontRef helvetica = CTFontCreateWithName(CFSTR(”Helvetica”),14.0, NULL);
CTFontRef helveticaBold =CTFontCreateWithName(CFSTR(”Helvetica-Bold”), 14.0, NULL);
//添加字体 目标字符串从下标0开始到字符串结尾
[string addAttribute:(id)kCTFontAttributeName
value:(id)helvetica
range:NSMakeRange(0, [string length])];
//添加字体 目标字符串从下标0开始,截止到4个单位的长度
[string addAttribute:(id)kCTFontAttributeName
value:(id)helveticaBold
range:NSMakeRange(0, 4)];
//添加字体 目标字符串从下标6开始,截止到5个单位长度
[string addAttribute:(id)kCTFontAttributeName
value:(id)helveticaBold
range:NSMakeRange(6, 5)];
//添加字体 目标字符串从下标109开始,截止到9个单位长度
[string addAttribute:(id)kCTFontAttributeName
value:(id)helveticaBold
range:NSMakeRange(109, 9)];
//添加字体 目标字符串从下标223开始,截止到6个单位长度
[string addAttribute:(id)kCTFontAttributeName
value:(id)helveticaBold
range:NSMakeRange(223, 6)];
//添加颜色,目标字符串从下标0开始,截止到4个单位长度
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor blueColor].CGColor
range:NSMakeRange(0, 4)];
//添加过程同上
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor redColor].CGColor
range:NSMakeRange(18, 3)];
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor greenColor].CGColor
range:NSMakeRange(657, 6)];
[string addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor blueColor].CGColor
range:NSMakeRange(153, 6)];
//创建文本对齐方式
CTTextAlignment alignment = kCTLeftTextAlignment;//左对齐kCTRightTextAlignment为右对齐
CTParagraphStyleSetting alignmentStyle;
alignmentStyle.spec=kCTParagraphStyleSpecifierAlignment;//指定为对齐属性
alignmentStyle.valueSize=sizeof(alignment);
alignmentStyle.value=&alignment;
//创建文本行间距
CGFloat lineSpace=5.0f;//间距数据
CTParagraphStyleSetting lineSpaceStyle;
lineSpaceStyle.spec=kCTParagraphStyleSpecifierLineSpacing;//指定为行间距属性
lineSpaceStyle.valueSize=sizeof(lineSpace);
lineSpaceStyle.value=&lineSpace;
//创建样式数组
CTParagraphStyleSetting settings[]={
alignmentStyle,lineSpaceStyle
};
//设置样式
CTParagraphStyleRef paragraphStyle =CTParagraphStyleCreate(settings, sizeof(settings));
//给字符串添加样式attribute
[string addAttribute:(id)kCTParagraphStyleAttributeName
value:(id)paragraphStyle
range:NSMakeRange(0, [string length])];
// layout master
CTFramesetterRef framesetter =CTFramesetterCreateWithAttributedString(
(CFAttributedStringRef)string);
CGMutablePathRef leftColumnPath = CGPathCreateMutable();
CGPathAddRect(leftColumnPath, NULL,
CGRectMake(0, 0,
self.bounds.size.width,
self.bounds.size.height));
CTFrameRef leftFrame =CTFramesetterCreateFrame(framesetter,
CFRangeMake(0, 0),
leftColumnPath, NULL);
// flip the coordinate system
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextTranslateCTM(context, 0, self.bounds.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
// draw
CTFrameDraw(leftFrame, context);
// cleanup
CGPathRelease(leftColumnPath);
CFRelease(framesetter);
CFRelease(helvetica);
CFRelease(helveticaBold);
[string release];
UIGraphicsPushContext(context);
}
发表评论
-
UIWebView清空缓存
2016-07-25 10:03 511- (void)clearAllUIWebViewData { ... -
iOS显示FPS值的工具FHHFPSIndicator
2016-07-04 13:56 0转载:http://www.cocoachina.com/io ... -
响应者链及相关机制总结
2016-06-30 14:25 510转载:http://www.cocoachina.com/i ... -
KVO&KVC的再次认知
2015-02-02 16:01 705KVO模型中,有两种通知观察者的方式,自动通知和手动通知。顾名 ... -
代码重构的理解(持续更新)
2015-01-13 17:27 585代码重构的理解和思考。 1:何时进行重构?当重复出现的时候,你 ... -
深入浅出Cocoa之Framework(转)
2015-01-06 17:49 0Framework 简介 转自 http://www.coc ... -
iOS静态库和动态库
2014-12-24 17:55 806一、什么是库? 库是共 ... -
svg图片在ios上的使用
2014-12-23 15:22 7371:从UI设计师那里得到的是每个svg图通过网站icomoon ... -
svg图片在ios上的使用
2014-12-23 15:22 32531:从UI设计师那里得到的是每个svg图通过网站icomoon ... -
Xcode设置项之Architectures和Valid Architectures
2014-12-22 10:42 624本文所讲的内容都是围绕iPhone的CPU指令集,现在先说说不 ... -
Xcode中Build Settings更改编译后能发现的问题
2014-12-17 13:36 7431:for循环不加括号 2:枚举赋值时类型不匹配 3:for循 ... -
静态库编译心得
2014-12-16 11:16 522我们编译静态库时一般会生成模拟器,真机两个包的.a文件 这二个 ... -
xcode编译选项整理
2014-12-11 19:15 0LINK_WITH_STANDARD_LIBRARIES = ... -
根据dsym解析crash_log
2014-12-01 14:15 9341:拷贝symbolicatecrash到/bin目录下 su ... -
autolayout心得
2014-10-28 13:30 687一:实现方案在以前就已经确定了下面几个点: 1 使 ... -
Objective-C的消息传递机制[转]
2014-07-31 20:34 675一直想写一篇类似的。 直接转载了 http://www.cnb ... -
iOS开发模拟限速
2012-12-07 17:47 53921. 模拟器网速调整: 限制时输入下面两行,根据需要修改下面的 ... -
iphone中结束电话后返回自己的应用(转载)
2012-04-10 10:30 1199iphone中结束电话后返回自己的应用 大家想不想在 ... -
Info.plist中常用的key简介(转载)
2012-03-15 15:55 941UIRequiresPersistentWiFi 在程序中弹出 ... -
UIScrollView 原理(转载)
2012-03-10 19:46 1165scroll view 原理 在滚动过程当中,其实是在修 ...
相关推荐
TTS技术,全称Text-to-Speech,是将文本信息转化为可听见的语音输出的一种技术。它广泛应用于各种场景,如无障碍阅读、智能助手、有声读物制作等。Text2Wav主要功能是将用户输入的文字转化为高质量的WAV音频文件,...
在IT行业中,文本转语音(Text-to-Speech, TTS)技术是一种常用的功能,它能够将文字信息转化为可听的语音输出,为用户提供便捷的信息获取方式。本项目以"C#将文本数据转换成语音进行播报实例"为主题,适用于.NET ...
确保你的项目设置正确,包括输出类型(应该是Windows应用)、目标框架(可能需要.NET Framework或.NET Core,取决于你的需求)以及任何依赖库的引用。 总的来说,设置Win Form窗体标题栏的文本是Windows应用程序...
2. `StreamWriter` 和 `FileStream`:这两个类用于处理输出文本文件。`StreamWriter`用于写入文本到文件,而`FileStream`则用于创建或打开一个文件。在这里,我们使用`new FileStream(dest, FileMode.Create)`创建一...
`TfidfVectorizer`的输出就是词袋模型的一种形式,它使用TF-IDF权重来量化每个词的重要性。 在"使用python进行文本预处理和提取特征的实例.pdf"文件中,可能会详细介绍这些步骤的代码实现和背后的理论。通过实践...
在C#中,我们可以利用.NET Framework或.NET Core中的`System.IO`命名空间来处理文本文件,以及使用`Microsoft.Office.Interop.Excel`库(需安装Office软件)来操作Excel文件。以下是实现这个任务的关键步骤: 1. **...
1. **Text Layout Core Component**: - 提供基础的文本布局引擎,负责核心的文本处理和布局逻辑。 - 包括对文本流的管理和布局算法的实现。 2. **Text Layout Conversion Component**: - 负责将内部数据模型...
文本挖掘是信息技术领域的一个重要分支,它涉及到对大量文本数据的深入分析,以提取有用的信息和知识。在Python中,我们可以利用各种库和工具来实现这一目标,其中词性标注是文本预处理的关键步骤之一。词性标注是将...
这个库可能与iText一起使用,提供额外的渲染功能,比如将RTF(Rich Text Format)数据转换为高质量的PDF输出。 结合这些库,开发者可以构建一个系统,使用FreeMarker来处理模板,然后通过iText和Core-Renderer将...
C# 是一种广泛使用的编程语言,尤其在Windows应用程序开发中,它提供了丰富的库和工具来实现各种功能,包括文本到语音(TTS,Text-to-Speech)的转换。这个名为“C# 语音朗读”的项目显然旨在利用C# 的能力,让程序...
为了将这些分词结果写入文本文件,我们可以使用Python的内置`open()`函数,以写入模式`'w'`打开文件,然后用`write()`方法逐行写入: ```python with open('output.txt', 'w') as f: for token in tokens: f....
3. **ZXing库使用**:ZXing是广泛使用的库,它的`core`模块提供了二维码生成的核心功能,而`javase`模块则包含了一个简单的命令行工具和示例代码。首先,需要将ZXing库添加到项目依赖中,然后可以创建`BitMatrix`...
在IT领域,文本转语音(Text-to-Speech, TTS)技术是一种常见的功能,它允许计算机程序将文本数据转化为人类可听的音频输出。在C#编程语言中,实现这样的功能可以通过利用.NET Framework或者.NET Core提供的API来...
在C#中,我们可以利用Windows API或第三方库(如SAPI5或System.Speech)来实现文本转语音(TTS,Text-to-Speech)。`VoiceHelper`可能封装了这些库,提供了简洁的调用接口,比如`Speak`方法,用于将传入的字符串转化...
在实际项目中,这两种方法都可以通过结合Core Animation和Core Text来实现更复杂的效果,如渐显、淡入淡出等。同时,为了提高性能和用户体验,应当注意优化动画的执行,避免一次性加载大量文字导致的卡顿。 在提供...
在C#中实现这样的喊话器,开发者可能使用了.NET Framework或者.NET Core作为开发环境,以及内置的System.Speech库。System.Speech库提供了SpeechSynthesizer类,通过这个类,开发者可以方便地将文本转换为语音输出。...
本文将详细讲解如何使用Aspose库在.NET Core中进行PDF操作,并结合给定的文件名(Program.cs、ConsoleApp11.csproj、ConsoleApp11.sln)来构建一个简单的示例代码。 首先,`Program.cs`是C#程序的主要入口点,它...
下面将详细介绍如何使用IText库来实现这个功能,包括添加图片、创建表格以及插入文本。 首先,你需要在项目中引入IText的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...