您的位置:首页 > 其它

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, DTAttributedLabelDTAttributedTextCellDTAttributedTextCell是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排版问题,另外也能更直接的就对一些区域进行时间监听。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: