SwiftUI WWDC21 新绘图和动画组件之 01 Canvas 支持即时模式绘制的视图类型

Canvas

一种支持即时模式绘制的视图类型。

struct Canvas<Symbols> where Symbols : View

概述

使用画布在 SwiftUI 视图中绘制丰富的动态 2D 图形。画布将 a 传递给您用于执行立即模式绘制操作的闭包。画布还传递一个值,您可以使用该值来自定义您绘制的内容。例如,您可以使用上下文的命令来绘制实例:GraphicsContextCGSizestroke(_:with:lineWidth:)Path

Canvas { context, size incontext.stroke(Path(ellipseIn: CGRect(origin: .zero, size: size)),with: .color(.green),lineWidth: 4)
}
.frame(width: 300, height: 200)
.border(Color.blue)

上面的例子绘制了一个椭圆的轮廓,它准确地刻画了一个带有蓝色边框的画布:

除了轮廓和填充路径,您还可以绘制图像、文本和完整的 SwiftUI 视图。要绘制视图,请使用方法提供可以从渲染器内部引用的视图。您还可以添加蒙版、应用滤镜、执行变换、控制混合等。有关如何绘制的信息,请参见。init(opaqu

SwiftUI WWDC21 新绘图和动画组件之 01 Canvas 支持即时模式绘制的视图类型相关推荐

  1. SwiftUI 界面大全之文本折叠书签动画组件3D(中文教程含源码)

    实战需求 SwiftUI 界面大全之文本折叠书签动画组件3D(中文教程含源码) 本文价值与收获 看完本文后,您将能够作出下面的界面 基础知识 效果本身其实很简单,包括三件事: 图像的旋转 图像的垂直移 ...

  2. SwiftUI之深入解析高级动画的路径Paths

    一.前言 本文将深入探讨一些创建 SwiftUI 动画的高级技术,讨论 Animatable 的协议,它可靠的伙伴 AnimatableData,强大但经常被忽略的 GeometryEffect 以及 ...

  3. Flutter 动画全解析(动画四要素、动画组件、隐式动画组件原理等)

    本文通过拆解 Flutter 中动画的实现方式以及原理来介绍动画实现的整个过程. 1. 动画四要素 动画在各个平台的实现原理都基本相同,是在一段时间内一系列连续变化画面的帧构成的.在 Flutter ...

  4. SwiftUI之深入解析高级动画的几何效果GeometryEffect

    一.前言 在我的博客 SwiftUI之深入解析高级动画的路径Paths 中,已经了解了 Animatable 的协议,以及如何使用它来动画路径.接下来,我们将使用相同的协议来动画变换矩阵,使用一个新的 ...

  5. Unity -- Animation(旧版动画组件)和Animator(新版动画器组件)

    旧版animation动画器组件 如果想让一个游戏物体具有动画表现的话,我们需要给这个游戏物体挂载动画组件 和音频组件视频组件一样,如果想在游戏对象上播放动画效果的话我们需要挂载一个动画组件,然后再给 ...

  6. 腾讯开源 Kotlin 高性能特效动画组件!

    点击上方"Github中文社区",关注 看遍Github好玩的项目 大家好,我是huer! 有人留言咨询有没有kotlin相关的开源,今天给大家推荐一款,先看一下效果展示: 1. ...

  7. 腾讯PAG动画组件技术,8K内容生产和传输应用实践,xR虚拟拍摄技术探索,影视生产与互联网音视频...

    腾讯PAG动画组件技术 Topic <动效素材极速交付:腾讯PAG动画组件技术揭秘> 陈仁健  腾讯 OVBU 计算内容中心副总监 音视频产品中的动效素材需求是源源不断的,例如贴纸花字,转 ...

  8. 视图属性+对象动画组件ViewPropertyObjectAnimator

    视图属性+对象动画组件ViewPropertyObjectAnimator ViewPropertyObjectAnmator组件是一款对象动画(ObjectAnimator)封装组件.它将视图属性动 ...

  9. 爆炸销毁动画组件Explosions

    爆炸销毁动画组件Explosions 爆炸销毁动画通常应用于界面元素的移除.使用该动画效果可以将移除操作表现的更为直观生动.Explosions组件是一款专门实现爆炸销动画效果的组件,它可以展示界面元 ...

最新文章

  1. 利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习)
  2. Asp.Net细节性问题技巧精萃(转载)
  3. spring+hibernate中的Result object returned from HibernateCallback isn't a List
  4. python基础ppt_Python基础课件.ppt
  5. ElasticSearch权威指南学习(结构化查询)
  6. 公司更换了静态IP,说可以监控上网行为,真的可以做到吗?
  7. 【Computer Organization笔记02】指令系统、MIPS指令系统简介、THCO MIPS指令系统、THINPAD指令模拟器
  8. 如何查看macOS中的GPU使用情况
  9. 我的美丽天使(My Fair Angel)全剧情攻略
  10. 医咖会免费SPSS教程学习笔记—斯皮尔曼相关系数(秩相关系数)
  11. Django实现web端tailf日志文件
  12. 最近收集的中科院研究生教学视频
  13. laravel dingo/api 笔记
  14. can't, cannot, can not
  15. vivo手机计算机记录怎么找回,如何从Vivo手机恢复已删除的照片,您将在阅读后知道...
  16. html代码打猎小游戏,html贪吃蛇小游戏课件-附源代码
  17. 洛谷 - P1008 [NOIP1998 普及组] 三连击 [Java版]
  18. 软件工程专业的论文答辩_2015软件工程硕士论文答辩流程
  19. 【Leetcode】1430. Check If a String Is a Valid Sequence from Root to Leaves Path in a Binary Tree
  20. 轻轻松松学习SpringBoot2:第一篇:搭建Spring Boot工程

热门文章

  1. 2020中国高校薪资排行榜出炉!
  2. c语言一维数组求平均成绩,C语言 计算一维数组平均值(函数).doc
  3. mysql学习笔记-索引优化【1】-索引失效原因
  4. 计算机(了解)\注释\变量\数据类型\格式化输出\debug
  5. 外贸供应链ERP怎么选?全流程综合管理解析
  6. python画二维折线图_利用python画折线图
  7. BGP通过团体和MED属性灵活控制回程路由
  8. 关于Office365邮箱附件大小限制问题
  9. 天龙日梅兰竹菊_第三百一十五章 梅兰竹菊
  10. 标段(包)分类 字典sql