240 发简信
IP属地:江苏
  • 120
    解决swift package manager fetch慢的问题

    想必搜索这个问题的人肯定是等了好久好久然后发现始终拉不下来,没错,我也是。无奈之下只能疯狂找解决方法,一开始在官方论坛里找到了一种解决方法,无用,最后只能自己去尝试解决。在此...

  • 先把文件复制到本地临时路径,之后再处理

    iOS 14 - 使用 PHPicker 选择照片和视频

    本文首发于个人博客[https://me.harley-xk.studio/posts/202009241518],欢迎访问留言,转载请注明出处 title: iOS 14 ...

  • 示例项目里面有绘制文本的实现,现在是先对 TextView 截图把文本转成图片,然后再通过贴图的 api 绘制的。

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • iOS tableview 刷新时跳动错位

    2018/2/12解决tableview使用estimatedRowHeight方式自动布局时,刷新reloadData会出现跳动错位的问题,原因可能是因为在刷新的时候,ce...

  • iOS 14 - 使用 PHPicker 选择照片和视频

    本文首发于个人博客[https://me.harley-xk.studio/posts/202009241518],欢迎访问留言,转载请注明出处 title: iOS 14 ...

  • 我目前的做法:声明一个与服务端相同的 string 或者 int 类型的属性来接收,然后另外声明一个计算属性,返回自己定义的 enum 类型,将服务器的值作为 rawValue。这时候可以针对未知的新增值返回一个 .unkown

    Swift 4 踩坑之 Codable 协议

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 WWDC 过去有一段时间了,最近终于有时间空闲,可以静下心来仔细研究一下相关内容。对于开发者来...

  • 120
    减小vue、element-ui打包后的文件大小

    原文在这里 具体思路是通过将element-ui、vue等常用的包使用外链的方式部署操作如下:1、修改index.html页面,再head中引入cdn。 2.修改webpac...

  • @攞你命3OOO 烟花可以把纹理间距调大了试试

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • 目前背景和画布是分开实现的,可以参考示例项目中背景图的实现。背景颜色的话其实是一样的,只是把设置 imageView 的 image 属性改成设置背景色而已

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • @攞你命三千次 水彩笔用默认的笔迹就可以了吧

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • 目前只支持线条,刷子可以通过定制纹理来实现

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • 120
    史上第二走心的 iOS11 Drag & Drop 教程

    话不多说,先上效果图 世界上最大的男性交友网站有demo 一.Tips:你必须要知道的概念 1. Drag 和 Drop 是什么呢? 一种以图形展现的方式把数据从一个 app...

  • 😂“大师”这个称谓总觉得哪里怪怪的

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • Canvas 对象可以注册 ActionObserver 来接收绘制事件的回调,可以监听到绘画路径开始、前进和结束的事件以及对应的坐标、压力值等。另外绘制点、贴图等也会有相应的回调。
    另一种方法是通过 Canvas 的 data 属性,CanvasData 的 elements 属性里面包含了所有画布元素的信息,包含各种贴图的尺寸、位置,线段的坐标、颜色、粗细等等。通过这种方式可以主动获取想要的数据。

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • @耽落 子线程绘制是不行的,Metal 提交绘制指令都需要在主线程,数据多的话只能通过定时器来分批处理了

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • @iTMMT 有的,Canvas 有个 addObserver() 函数,可以注册绘制事件的状态回调。另外还有个 renderingDelegate,可以在绘制之前得到通知,并且可以通过 return false 来阻止绘制。

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • 这两个值是预留用来控制缩放行为的,zoom 控制 RenderTarget 自身的缩放, scale 控制绘制到 RenderTarget 之上的元素的缩放,在不支持缩放的 Canvas 上没有意义,可以忽略。在目前实现的的 ScrollableCanvas 上这两个值是同步的,表示 RenderTarget 和它上面的元素会同步缩放。不过因为元素缩放需要全部重绘,基于目前的实现方案,在数据量很大的情况下重绘全部元素会造成卡顿,这种情况下可能需要重写 ScrollableCanvas 的部分表现,在缩放过程中让 scale 保持不变,只是缩放 RenderTarget 自身,缩放完毕后再同步元素的缩放,可以有效减少卡顿情况,不过视觉效果会差一点。这一块后面可能会想别的实现方式来优化。

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • @耽落 有一个 Pan 的结构体,封装了 UITouch 和 压力数据,并且做了一些处理,比如对不支持 3D touch 设备的压力设置等,这个结构体在 Brush.swift 这个文件的头部。
    不过你说的这个问题应该是个 bug,不应该出现画不出来的情况,我回头在不支持 3D Touch 的设备上测试下

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

  • 可以的,根据外部的数据自行创建 MLLine,然后直接调用 Canvas 类的 render(lines:) 方法绘制。可以同时看一下 renderTap、renderChartlet 这几个方法,都是可以直接调用的。

    神笔马良——基于 Metal 的涂鸦框架

    所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 取这个名字有投机取巧的嫌疑,希望能对得起先贤 >_< MaLiang 现已全面升级到 Meta...

个人介绍
Swift full stack developer。