专栏首页macOS 开发学习iOS图文混编先说一下我遇到这个问题的思路:

iOS图文混编先说一下我遇到这个问题的思路:

先准备一个坑,自己跳

CoreText 之后,苹果新增加了UITextkit,更容易实现图文混排,甚至混编!

说起这个话题,是源自我在项目设计中遇到的,要显示美观优雅的界面效果,图文并茂(图文混排)是基本的一个需求.为了增加用户粘性,如果可以再实现图文编辑(图文混编)那也就是顺其自然的啦....

先说一下我遇到这个问题的思路:

思路1. 首先最容易想到的就是使用UIWebView.

"不想偷懒的程序员不是优秀的程序猿", 秉着这种想法,自然就是希望后台的兄弟们能够提供一个URL给移动端进行调用,直接用网页的形式进行展示就完事啦....不过这里有三个需要处理的问题: 

1> UIWebView的性能   

2> UIWebView的互动

3> UIWebView的编辑

其中第三个问题是比较棘手的,最初想到的的思路是获取webview的html,然后修改html内容后再让webview加载.(这个要请web前端的同事吃好多饭才行啊~_^).

另外,如果处理图片(比如添加一张图片,JS的执行性能也是一个体验考量啊..),因此这个方案暂时搁置.接着.....

思路2. CoreText 

   苹果的这个框架对富文编辑提供了强大的底层支持,具体用法可参考网上的教程CoreText入门系列.

   使用CoreText编辑图文混排是没问题啦,但是考虑到...展示图文混搭的界面....我先下楼透透气...好吧,你可能想到了解析html.

   因此使用CoreText需要一个HTML的解析器....

   这个让我再想想...于是....

思路3.UITextVIew

在iOS7之后,苹果封装了基于C语言的CoreTextKit,推出了UITextkit...用起来更加OC化.

但在思路2遇到的问题这个依然存在...后来....

思路4. UIWebView+UITextView

想来想去,其实就是把图文展示与 图文编辑这两个需求分开,用webview进行展示,用textview进行编辑.这个勉强算是个解决方案层上一个版本吧.

代码实现:(待续...)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一样的iOS开发程序员为什么有人4k有人40k?原因就在这里!

    移动开发真正火起来其实就是最近这几年,iOS 开发技术因为发展也就才这么几年,所以值得做的事情还有很多,这就造成了每年苹果的 WWDC 都会推出一堆新的特性和 ...

    原来是泽镜啊
  • 「GPUImage」IOS初学者容易掉入的坑

    今天想弄个GPUImage的例子运行下看看效果,结果没成想坑进了一系列坑中,花了大半天时间才从坑里爬出来。

    音视频_李超
  • 使用APICloud敏捷式开发总结,回顾开发一个完整APP过程。

    刚接触这个平台的新手,可以参考上方的新手指南,官方也有7天的入门视频教程,虽然视频及文档教程比较老,凑合着看,可以满足小白入门要求。

    孙叫兽
  • 你知道在iOS开发的工作中为什么有人4k有人40k吗?

      如果你有志于将iOS开发作为职业,或者已经是一位iOS开发者,那么你应该听说过唐巧的名字。唐巧,2012年从网易有道离开参与创业, 目前是猿题库iOS高级研...

    Kris大鲨
  • Flutter(十二)混合栈开发-组件化Flutter工程Flutter(十二)混合栈开发-组件化Flutter工程

    有大佬在实际开发中发现,APP只需要依赖Flutter编译后的产物就可以完成依赖。现在就抛出个问题:Flutter编译后的产物是什么东东。

    用户8893176
  • Flutter混合栈路由实践与优化

    ? 导语 | 在 Flutter 和原生混合开发的场景里,路由是绕不开的一个话题。但业内的方案中仍存在内存异常,对官方底层的修改也需要不断踩坑。我们在项目实践...

    腾小云
  • Flutter 实现原理及在马蜂窝的跨平台开发实践

    在马蜂窝旅游 App 很多业务场景里,我们尝试过一些主流的跨平台开发解决方案, 比如 WebView 和 React Native,来提升开发效率和用户体验。但...

    马蜂窝技术
  • 探索命名之美(二)

    大家在编码或者读代码的过程中,对于什么样的命名是好的命名可能认知不是特别清晰,但是对于什么样的命名是坏的命名应该一目了然,他们包括:

    nimomeng
  • 极速求职 —— 五天面完腾讯、阿里等公司

    前言 《一个程序员的求职之旅》 去年的求职之旅仍旧历历在目:当时借宿深圳,在拉勾上投着各种小公司,然后重复着"投简历、不合适" 和 "投简历、面试、公司看不...

    落影
  • iOS开发笔记(十)— Xcode、UITabbar、特殊机型问题分析

    【问题分析】通过多个文件尝试,发现并非完全不能索引头文件,而是只能索引和当前文件在同级目录的头文件; 有点猜测是Xcode10.1的原因,但是在升级完的半年多...

    落影
  • 微信团队分享:微信支付代码重构带来的移动端软件架构上的思考

    本文原文由微信客户端高级工程师方秋枋原创发表于WeMobileDev公众号,收录时有修订和加工,感谢作者的无私分享。

    JackJiang
  • 布局编码的未来

    客户端布局是客户端开发最为基础也是最为重要的编程实践之一,对于一个有着良好技术架构的客户端开发团队来说,布局编码工作占业务开发工作量的80%。显然,对于布局编码...

    美团技术团队
  • 实现iOS图片等资源文件的热更新化(五): 一个简单完整的资源热更新页面

    简介 ? 一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例. 动机与意义 这是系列文章的最后一篇.今天抽空写下,收下尾....

    ios122
  • 用BurpSuit的Brida自定义插件搞定加密签名算法

    Frida是一款非常强大的框架,其可向Windows、MacOS、Linux、iOS、Android,QNX的应用中注入Javascript,进而拦截应用传输的...

    FB客服
  • 【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

    编译 Luajit 库,的确是一个挑战。因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了。以前只是编译了适用于真机的 Luajit 库...

    ios122
  • 前端发展闲聊

    先后涌现出了具备后端能力的node,具备移动开发能力的react native,具备游戏渲染能力的cocos2d-js,以及iOS上的热修复技术JSPatch等...

    李才哥
  • 如何持续的自我提升

    今天,笔者从 百度App Objective-C/Swift 组件化混编之路(二)- 工程化 时,就被灌输了一个”新知识“:module 会供链接器使用 。

    酷酷的哀殿
  • 我们是如何将 Cordova 应用嵌入到 React Native 中

    重写一个应用是一件简单的事,可是演进一个应用则是一件复杂的工作。 过去的一年多里,我在工作上的主要职责是:手机 APP 开发。日常主要是编写基于 Ionic 和...

    Phodal
  • Flutter - 混合开发

    使用混合开发就不能像之前一样直接上来就创建一个 Flutter 项目,而是要使用 Flutter模板

    LinXunFeng

扫码关注云+社区

领取腾讯云代金券