DTCoretext使用
2015-06-07 12:58
681 查看
[b]安装 git
clone --recursive https://github.com/Cocoanetics/DTCoreText.git
[/b]
DTCoretext在github上的地址https://github.com/Cocoanetics/DTCoreText
安装
官网github上的安装教程地址https://github.com/Cocoanetics/DTCoreText/blob/develop/Documentation/Setup%20Guide-template.markdown。我的项目是用git管理的,第一种方式是用cocoapods这个第三方管理库的工具去安装DTCoretext,很多人都诟病,所以放弃。
第二种方式是把DTCoretext作为一个子项目,这个方式比较多坑,看看唐巧这篇文章《Git Submodule的坑》http://blog.devtang.com/blog/2013/05/08/git-submodule-issues/,所以也不适用。
所以我自己找到适合自己项目的安装步骤是:
在终端运行这两个命令 git clone --recursive https://github.com/Cocoanetics/DTCoreText.git Externals/DTCoreText 把DTCoretext的项目资源拷贝下来,然后把的.git文件都删掉。
在自己的项目建一个名叫Externals的包,然后把DTCoretext的文件copy到项目文件Externals里面,最后,打开项目文件中的Externals里面的DTCoretext,把DTCoretext.xcodeproj拖到项目工城中。
添加库
libDTCoreText.a (target from the DTCoreText sub-project)
libxml2.dylib
ImageIO.framework
QuartzCore.framework
CoreText.framework
MobileCoreServices.framework
设置Header Search Paths
设置Linker Flags 如果xcode4.6之前的还需要添加-all_load.
使用DTAttributedTextCell
DTCoretext有三方面的内容DTAttributedTextView, DTAttributedLabel 和 DTAttributedTextCell。 DTAttributedTextCell是UITableViewCell的子类,可以看到关于它的方法和属性的官方文档https://docs.cocoanetics.com/DTCoreText/Classes/DTAttributedTextCell.html。它一般用在当列表中每个cell都有图文排版的情况。当每个cell的排版都能用html和css很方便排版的时候,那是比较容易处理的。但是我发现当css中display实现多个div标签在同一行的时候,这个css样式DT是不能解析的,是显示不了效果的。鉴于这个理由和一些别的点击事件需要,我用了另外一个方式去改良一下。
首先,我继承了DTAttributedTextCell这个类,取名叫MyCell吧。假如每个cell都有标题区和内容区,当然标题区可能还有作者信息,发表时间等,而且标题区还有点击事件。这样,内容区我会用html和css去排版,具体怎么排版就不多说,这样DT直接解析,而且空留一个空间给标题区,也就是用css把内容区往下移一些。
然后,我就可以用UIControl去显示标题区,然后直接insertSubview到MyCell的contentview上,但是,应该这样写 [self.contentView insertSubview:titleView aboveSubview:self.attributedTextContextView]; self指的是MyCell,titleView就是要标题区域的View。uicontrol可以直接写监听事件,这样就能解决DT不能解析的css排版问题,另外也能更直接的就对一些区域进行时间监听。
clone --recursive https://github.com/Cocoanetics/DTCoreText.git
[/b]
DTCoretext在github上的地址https://github.com/Cocoanetics/DTCoreText
安装
官网github上的安装教程地址https://github.com/Cocoanetics/DTCoreText/blob/develop/Documentation/Setup%20Guide-template.markdown。我的项目是用git管理的,第一种方式是用cocoapods这个第三方管理库的工具去安装DTCoretext,很多人都诟病,所以放弃。
第二种方式是把DTCoretext作为一个子项目,这个方式比较多坑,看看唐巧这篇文章《Git Submodule的坑》http://blog.devtang.com/blog/2013/05/08/git-submodule-issues/,所以也不适用。
所以我自己找到适合自己项目的安装步骤是:
在终端运行这两个命令 git clone --recursive https://github.com/Cocoanetics/DTCoreText.git Externals/DTCoreText 把DTCoretext的项目资源拷贝下来,然后把的.git文件都删掉。
在自己的项目建一个名叫Externals的包,然后把DTCoretext的文件copy到项目文件Externals里面,最后,打开项目文件中的Externals里面的DTCoretext,把DTCoretext.xcodeproj拖到项目工城中。
添加库
libDTCoreText.a (target from the DTCoreText sub-project)
libxml2.dylib
ImageIO.framework
QuartzCore.framework
CoreText.framework
MobileCoreServices.framework
设置Header Search Paths
设置Linker Flags 如果xcode4.6之前的还需要添加-all_load.
使用DTAttributedTextCell
DTCoretext有三方面的内容DTAttributedTextView, DTAttributedLabel 和 DTAttributedTextCell。 DTAttributedTextCell是UITableViewCell的子类,可以看到关于它的方法和属性的官方文档https://docs.cocoanetics.com/DTCoreText/Classes/DTAttributedTextCell.html。它一般用在当列表中每个cell都有图文排版的情况。当每个cell的排版都能用html和css很方便排版的时候,那是比较容易处理的。但是我发现当css中display实现多个div标签在同一行的时候,这个css样式DT是不能解析的,是显示不了效果的。鉴于这个理由和一些别的点击事件需要,我用了另外一个方式去改良一下。
首先,我继承了DTAttributedTextCell这个类,取名叫MyCell吧。假如每个cell都有标题区和内容区,当然标题区可能还有作者信息,发表时间等,而且标题区还有点击事件。这样,内容区我会用html和css去排版,具体怎么排版就不多说,这样DT直接解析,而且空留一个空间给标题区,也就是用css把内容区往下移一些。
然后,我就可以用UIControl去显示标题区,然后直接insertSubview到MyCell的contentview上,但是,应该这样写 [self.contentView insertSubview:titleView aboveSubview:self.attributedTextContextView]; self指的是MyCell,titleView就是要标题区域的View。uicontrol可以直接写监听事件,这样就能解决DT不能解析的css排版问题,另外也能更直接的就对一些区域进行时间监听。
相关文章推荐
- C语言程序设计进阶 翁恺 第4周编程练习
- iOS UILocalizedIndexedCollation
- "浪潮杯"第六届ACM山东省省赛山科场总结
- 发送短信
- 机器学习一 -- 什么是监督学习和无监督学习?
- linux Mint 安装博通bcm4312无线网卡驱动
- Java方法参数的使用情况
- JQuery插件写法练习Demo
- JUNIT(suite组合测试)
- 事前备份胜于事后恢复
- mysql在insert触发器里update当前数据
- HDU 5240 E - Exam(2015 ACM-ICPC China Shanghai Metropolitan Programming Contest)
- haproxy的基本使用方法
- varnish及其应用
- android 本地数据存贮之sharedpreference
- 链表的逆置
- 简单工厂模式
- 链表的逆置 分类: 链表 2015-06-07 12:53 19人阅读 评论(0) 收藏
- [Eclipse]代码已被写入关于如何切换到unix在新行
- Java知多少(85)文本框和文本区