图文混排

扩展于RCLabel的支持异步加载网络图片的富文本引擎的设计

家住魔仙堡 提交于 2019-12-10 14:12:09
扩展于RCLabel的支持异步加载网络图片的富文本引擎的设计 在iOS开发中,图文混排一直都是UI编程的一个核心点,也有许多优秀的第三方引擎,其中很有名的一套图文混排的框架叫做DTCoreText。但是在前些日的做的一个项目中,我并没有采用这套框架,原因有二,一是这套框架体积非常大,而项目的需求其实并不太高;二是要在这套框架中修改一些东西,难度也非常大,我最终采用的是一个叫做RCLabel的第三方控件,经过一些简单的优化和完善,达到了项目的要求。 先来介绍一下我项目中的图文混排的需求:首先我从服务器中取到的数据是字符串,但是其中穿插图片的位置是一个HTML的图片标签,标签里的资源路径就是图片的请求地址。需要达到的要求是这些数据显示出来后,图片的位置要空出来,然后通过异步的网络请求获取图片的数据,再将图片插入文字中。 要自己实现一套这样的引擎确实会比较麻烦,幸运的是RCLabel可以完美的帮我们解析带有HTML标签的数据,进行图文混排,我们先来看一下这个东西怎么用,下面是我封装的一个展示html数据的view: @interface YHBaseHtmlView()<YHRTLabelImageDelegate> { //RCLabel对象 RCLabel * _rcLabel; //保存属性 用于异步加载完成后刷新 RTLabelComponentsStructure *

使用CoreText实现图文混排

你。 提交于 2019-12-07 19:14:07
OS没有现成的支持图文混排的控件,而要用多个基础控件组合拼成图文混排这样复杂的排版,是件很苦逼的事情。对此的解决方案有使用CoreText进行绘制,或者使用TextKit。本文主要讲解对于CoreText的使用。 案例下载地址 https://github.com/ClavisJ/CoreTextDemo 环境信息: Mac OS X 10.10.1 Xcode 6.1.1 iOS 8.1 正文: 一、Core Text简介 CoreText是基于IOS3.2及OSX10.5的用于文字精细排版的文本框架。它直接与Core Graphics(又称:Quartz)交互,将需要显示的文本内容,位置,字体,字形直接传递给Quartz,与其他UI组件相比,能更高效的进行渲染。 Core Text 架构图 二、CoreText与UIWebView在排版方面的优劣比较 UIWebView也常用于处理复杂的排版,对应排版他们之间的优劣如下(摘自 《iOS开发进阶》—— 唐巧): CoreText占用的内容更少,渲染速度更快。UIWebView占用的内存多,渲染速度慢。 CoreText在渲染界面的前就可以精确地获得显示内容的高度(只要有了CTFrame即可),而WebView只有渲染出内容后,才能获得内容的高度(而且还需要用JavaScript代码来获取)。

Android中的File文件存储及读取file中的Bitmap

亡梦爱人 提交于 2019-12-05 19:07:57
今年看了下android的文件存储,大致和java实现差不多 android提供了如下两个方法来打开本应用程序的数据文件的IO流: FileInputStream openFileInput(fileName); //输入流 FileOutputStream outputStream = openFileOutput(fileName, MODE_PRIVATE); //输出流 打开输出流的方法的第二个是表示打开文件的mode,大概有一下几种: MODE_PRIVATE : 该文件只能被当前程序读写,且是覆盖的写 MODE_APPEND:以追加的方式打开文件,可向该文件中添加内容 MODE_WORLD_READABLE:该文件的内容可以被其他应用程序读 MODE_WORLD_WRITEABLE:该文件的内容可以被其他程序读、写 下面简单实现从一个Edittext中读取输入的文字,在Textview中显示出来 MainActivity.java package com.file.filetest; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java