我看过几个显示动画汉字的iPhone / iPad应用程序.对于那些不熟悉汉字的人来说,笔顺是汉字学习的一个非常重要的部分,所以如果你正在做一个显示动画笔画顺序的应用程序是必不可少的部分.

所有我看到的应用程序,这样做,将KanjiVG project作为笔画顺序数据的来源.经过一番研究,我发现KanjiVG项目为您提供了以XML编码的SVG格式的数据.

从来没有编程过的图形(并且相对较新的iOS),我很失去在哪里继续寻找信息.

我想我需要:

>将XML解析为SVG.
>渲染SVG.

…但我不确定为了看看我在iPhone / iPad应用程序中如何完成这个操作,动画都看起来非常的相似,所以必须有一个通用的图书馆,这些人正在使用,我没有找到(可能是因为我不知道我在找什么!)

任何人都可以给我的任何指针将不胜感激.

干杯!

解决方法

这最终比我原来想象的容易得多. KanjiVG项目提供的XML不仅包含所有的汉字“部分”,而且包含SVG数据!

所以你得到这个:

<kanji midashi="会" id="4f1a">
<strokegr element="会">
    <strokegr element="人" position="top" radical="general">
        <stroke type="㇒" path="M52.25,14c0.25,2.28-0.52,3.59-1.8,5.62c-5.76,9.14-17.9,27-39.2,39.88"/>
        <stroke type="㇏" path="M54.5,19.25c6.73,7.3,24.09,24.81,32.95,31.91c2.73,2.18,5.61,3.8,9.05,4.59"/>
    </strokegr>
    <strokegr element="云" position="bottom">
        <strokegr element="二">
            <stroke type="㇐" path="M37.36,50.16c1.64,0.34,4.04,0.36,4.98,0.25c6.79-0.79,14.29-1.91,19.66-2.4c1.56-0.14,3.25-0.39,4.66,0"/>
            <stroke type="㇐" path="M23,65.98c2.12,0.52,4.25,0.64,7.01,0.3c13.77-1.71,30.99-3.66,46.35-3.74c3.04-0.02,4.87,0.14,6.4,0.29"/>
        </strokegr>
        <strokegr element="厶">
            <stroke type="㇜" path="M47.16,66.38c0.62,1.65-0.03,2.93-0.92,4.28c-5.17,7.8-8.02,11.38-14.99,18.84c-2.11,2.25-1.5,4.18,2,3.75c7.35-0.91,28.19-5.83,40.16-7.95"/>
            <stroke type="㇔" path="M66.62,77.39c4.52,3.23,11,12.73,13.06,18.82"/>
        </strokegr>
    </strokegr>
</strokegr>
</kanji>

并且如果您只从笔画节点的路径属性创建SVG文件,那么您将获得一个漂亮的SVG绘图!喜欢这个:

<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" version="1.1"  baseProfile="full"> 
<path d="M52.25,39.88" style="fill:none;stroke:black;stroke-width:2" />
<path d="M54.5,4.59" style="fill:none;stroke:black;stroke-width:2" />
<path d="M37.36,0" style="fill:none;stroke:black;stroke-width:2" />
<path d="M23,0.29" style="fill:none;stroke:black;stroke-width:2" />
<path d="M47.16,40.16-7.95" style="fill:none;stroke:black;stroke-width:2" />
<path d="M66.62,18.82" style="fill:none;stroke:black;stroke-width:2" />
</svg>

复制上述SVG XML并将其粘贴到纯文本文件中.将此文件命名为以.svg结尾的东西,并将其拖动到Firefox中.在那里,是汉字的图形表示!

所以现在我拥有所有的“原始”SVG信息,这只是一个找到合适的SVG渲染器的问题.

ios – 如何在Objective-C中从SVG数据创建汉字(日文字母)动画?的更多相关文章

  1. HTML5如何使用SVG的方法示例

    这篇文章主要介绍了HTML5如何使用SVG的方法示例,详细的介绍了什么是SVG以及如何使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. SVG实现多彩圆环倒计时效果的示例代码

    这篇文章主要介绍了SVG实现多彩圆环倒计时效果的示例代码,本文主要用到了SVG的stroke-dasharray和stroke-dashoffset特性 ,具有一定的参考价值,有兴趣的可以了解一下

  3. 使用SVG实现提示框功能的示例代码

    这篇文章主要介绍了使用SVG实现提示框功能的示例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. 将SVG图引入到HTML页面的实现

    这篇文章主要介绍了将SVG图引入到HTML页面的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. 使用html2canvas.js实现页面截图并显示或上传的示例代码

    这篇文章主要介绍了使用html2canvas.js实现页面截图并显示或上传的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  6. html svg生成环形进度条的实现方法

    这篇文章主要介绍了html svg生成环形进度条的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  7. 在Safari iOS 10中,SVG转换旋转90,180或270度不能在圆上工作

    我想使用SVG圆形元素创建一个甜甜圈图表,方法是设置stroke-dasharray和changestroke-dashoffset.SVG元素需要旋转270(或-90)度才能使图表“bar”从顶部开始.这是代码:http://jsfiddle.net/q3wb6gkq/旋转角度使用transform=“rotation(270,80,80)”中的第一个数字指定.问题是:当在iOS10上的Safa

  8. ios – 如何在Objective-C中从SVG数据创建汉字(日文字母)动画?

    我看过几个显示动画汉字的iPhone/iPad应用程序.对于那些不熟悉汉字的人来说,笔顺是汉字学习的一个非常重要的部分,所以如果你正在做一个显示动画笔画顺序的应用程序是必不可少的部分.所有我看到的应用程序,这样做,将KanjiVGproject作为笔画顺序数据的来源.经过一番研究,我发现KanjiVG项目为您提供了以XML编码的SVG格式的数据.从来没有编程过的图形,我很失去在哪里继续寻找信息.我想我需要:>将XML解析为SVG.>渲染SVG.…

  9. ios Safari上的SVG视窗高度问题

    使用svg时,我注意到ios有一个奇怪的事情.svgs似乎在所有其他浏览器中都可以正常运行,但是在Safariipad/iphone上,视窗在svg的顶部和底部有一些奇怪的空间.有没有人遇到过这个,你能解决它吗?

  10. iOS Safari的SVG文件大小限制

    附:当我直接浏览SVG文件而不是通过HTML页面时,我能够查看图像.我也可以在IFRAME中查看SVG文件.但不使用img标签.解决方法我制作了一些不同大小的测试SVG文件.它们看起来像这样:使用browserstack模拟iPhone5和第三代iPad,我发现故障点介于2200×2200和2400×2400像素之间.500万像素的限制对应于2289×2289的图像,因此这与Duopixel’scomment一致,表明渲染的大小是重要的.

随机推荐

  1. iOS实现拖拽View跟随手指浮动效果

    这篇文章主要为大家详细介绍了iOS实现拖拽View跟随手指浮动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. iOS – genstrings:无法连接到输出目录en.lproj

    使用我桌面上的项目文件夹,我启动终端输入:cd然后将我的项目文件夹拖到终端,它给了我路径.然后我将这行代码粘贴到终端中找.-name*.m|xargsgenstrings-oen.lproj我在终端中收到此错误消息:genstrings:无法连接到输出目录en.lproj它多次打印这行,然后说我的项目是一个目录的路径?没有.strings文件.对我做错了什么的想法?

  3. iOS 7 UIButtonBarItem图像没有色调

    如何确保按钮图标采用全局色调?解决方法只是想将其转换为根注释,以便为“回答”复选标记提供更好的上下文,并提供更好的格式.我能想出这个!

  4. ios – 在自定义相机层的AVFoundation中自动对焦和自动曝光

    为AVFoundation定制图层相机创建精确的自动对焦和曝光的最佳方法是什么?

  5. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  6. ios – 在没有iPhone6s或更新的情况下测试ARKit

    我在决定下载Xcode9之前.我想玩新的框架–ARKit.我知道要用ARKit运行app我需要一个带有A9芯片或更新版本的设备.不幸的是我有一个较旧的.我的问题是已经下载了新Xcode的人.在我的情况下有可能运行ARKit应用程序吗?那个或其他任何模拟器?任何想法或我将不得不购买新设备?解决方法任何iOS11设备都可以使用ARKit,但是具有高质量AR体验的全球跟踪功能需要使用A9或更高版本处理器的设备.使用iOS11测试版更新您的设备是必要的.

  7. 将iOS应用移植到Android

    我们制作了一个具有2000个目标c类的退出大型iOS应用程序.我想知道有一个最佳实践指南将其移植到Android?此外,由于我们的应用程序大量使用UINavigation和UIView控制器,我想知道在Android上有类似的模型和实现.谢谢到目前为止,guenter解决方法老实说,我认为你正在计划的只是制作难以维护的糟糕代码.我意识到这听起来像很多工作,但从长远来看它会更容易,我只是将应用程序的概念“移植”到android并从头开始编写.

  8. ios – 在Swift中覆盖Objective C类方法

    我是Swift的初学者,我正在尝试在Swift项目中使用JSONModel.我想从JSONModel覆盖方法keyMapper,但我没有找到如何覆盖模型类中的Objective-C类方法.该方法的签名是:我怎样才能做到这一点?解决方法您可以像覆盖实例方法一样执行此操作,但使用class关键字除外:

  9. ios – 在WKWebView中获取链接URL

    我想在WKWebView中获取tapped链接的url.链接采用自定义格式,可触发应用中的某些操作.例如HTTP://我的网站/帮助#深层链接对讲.我这样使用KVO:这在第一次点击链接时效果很好.但是,如果我连续两次点击相同的链接,它将不报告链接点击.是否有解决方法来解决这个问题,以便我可以检测每个点击并获取链接?任何关于这个的指针都会很棒!解决方法像这样更改addobserver在observeValue函数中,您可以获得两个值

  10. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

返回
顶部