75142913在线留言
【SwiftUI基础篇】18 视图呈现(view-rendering)的属性修改器_IOS开发_网络人

【SwiftUI基础篇】18 视图呈现(view-rendering)的属性修改器

Kwok 发表于:2021-04-06 15:06:21 点击:41 评论: 0

前面1~17章的内容把SwiftUI里常用到的视图、表单、颜色、形状等做了介绍,里面已经使用了很多的修饰器对视图呈现的效果进行美化。

SwiftUI为我们提供了内置的修饰器,如一系列的font(),background()和clipShape()等。

视图修饰符modifier是视图实例的方法。它的原理是:

1、取视图(或另一个修饰符)

2、复制视图

3、在对其样式进行一些更改后,返回修改后的视图。

每当我们将修改器应用于SwiftUI视图时,我们实际上都会创建一个新视图(返回修饰后的)。想一下,这种行为是有道理的,我们的视图仅保留了我们赋予它们的确切属性(如frameforegroundColor等),在使用修饰器的时候我们要注意其顺序。

一、颜色修饰器

a、func foregroundColor(Color?) -> some View 设置此视图显示的前景元素的颜色。

显示此视图时使用的前景色。传递nil来移除任何自定义的前景色,并允许系统或容器提供自己的前景色。如果容器特定的覆盖不存在,系统将使用主颜色。

func accentColor(Color?) -> some View 设置此视图及其包含的视图的重点颜色。

func preferredColorScheme(ColorScheme?) -> some View 设置此演示文稿的首选配色方案。

enum ColorScheme 配色方案的可能类型,例如“暗模式”。

struct PreferredColorSchemeKey 用于指定首选配色方案的键。

func colorScheme(ColorScheme) -> some View 设置此视图的配色方案不推荐使用)。

二、边框与可见度

func border(S, width: CGFloat) -> some View 使用指定的样式和宽度向此视图添加边框。

func hidden() -> some View 无条件隐藏此视图。

 

三、编辑

1、func redacted(reason: RedactionReasons) -> some View 添加了将修订应用于此视图层次结构的原因。

2、func unredacted() -> some View 删除将修订应用于此视图层次结构的任何原因。

3、struct RedactionReasons 对屏幕上显示的数据应用修订的原因。

四、遮罩与裁剪

func mask(Mask) -> some View 使用给定视图的Alpha通道遮罩此视图。

func clipped(antialiased: Bool) -> some View 将此视图剪切到其边界矩形框。

func clipShape(S, style: FillStyle) -> some View 设置此视图的裁剪形状。

func cornerRadius(CGFloat, antialiased: Bool) -> some View 将此视图剪切到具有指定角半径的边界框。

四、尺寸与缩放

func scaledToFill() -> some View 缩放此视图以填充其父视图。

func scaledToFit() -> some View 缩放此视图以适合其父视图。

func scaleEffect(CGFloat, anchor: UnitPoint) -> some View 相对于锚点,在水平和垂直方向上按给定的比例缩放此视图的渲染输出。

func scaleEffect(CGSize, anchor: UnitPoint) -> some View 相对于锚点,按给定的垂直和水平尺寸大小缩放此视图的渲染输出。

func scaleEffect(x: CGFloat, y: CGFloat, anchor: UnitPoint) -> some View 相对于锚点,以给定的水平和垂直量缩放该视图的渲染输出。

func imageScale(Image.Scale) -> some View 根据可用的相对尺寸之一缩放视图内的图像,包括小,中和大图像尺寸。

func aspectRatio(CGFloat?, contentMode: ContentMode) -> some View 将此视图的尺寸限制为指定的宽高比。

func aspectRatio(CGSize, contentMode: ContentMode) -> some View 将此视图的尺寸限制为给定尺寸的纵横比。

enum ContentMode 定义视图内容如何填充可用空间的常量。

五、旋转与变换

func rotationEffect(Angle, anchor: UnitPoint) -> some View 围绕指定点旋转该视图的渲染输出。

func rotation3DEffect(Angle, axis: (x: CGFloat, y: CGFloat, z: CGFloat), anchor: UnitPoint, anchorZ: CGFloat, perspective: CGFloat) -> some View 围绕给定的旋转轴在三个维度上旋转此视图的渲染输出。

func projectionEffect(ProjectionTransform) -> some View 将投影变换应用于此视图的渲染输出。

func transformEffect(CGAffineTransform) -> some View 将仿射变换应用于此视图的渲染输出。

六、图形效果

func blur(radius: CGFloat, opaque: Bool) -> some View 将高斯模糊应用于此视图。

func opacity(Double) -> some View 设置此视图的透明度。

func brightness(Double) -> some View 通过指定的数量使该视图变亮。

func contrast(Double) -> some View 设置此视图中相似颜色之间的对比度和分色。

func colorInvert() -> some View 在此视图中反转颜色。

func colorMultiply(Color) -> some View 向该视图添加颜色倍增效果。

func saturation(Double) -> some View 调整此视图的色彩饱和度。

func grayscale(Double) -> some View 向此视图添加灰度效果。

func hueRotation(Angle) -> some View 将色调旋转效果应用于此视图。

func luminanceToAlpha() -> some View 在此视图中为Alpha效果添加亮度。

func shadow(color: Color, radius: CGFloat, x: CGFloat, y: CGFloat) -> some View 向此视图添加阴影。

七、视图合成

func blendMode(BlendMode) -> some View 设置用于将此视图与重叠视图合成的混合模式。

func compositingGroup() -> some View 将此视图包装到一个合成组中。

func drawingGroup(opaque: Bool, colorMode: ColorRenderingMode) -> some View 在最终显示之前,将此视图的内容合成为屏幕外图像。

enum BlendMode 用于合并具有重叠内容的视图的模式。

enum ColorRenderingMode 用于色彩合成操作的工作色彩空间。

八、动画效果

func animation(Animation?) -> some View 将给定的动画应用于此视图中的所有可设置动画的值。

func animation(Animation?, value: V) -> some View 当指定值更改时,将给定动画应用于此视图。

func transition(AnyTransition) -> some View 将过渡与视图相关联。

func matchedGeometryEffect(id: ID, in: Namespace.ID, properties: MatchedGeometryProperties, anchor: UnitPoint, isSource: Bool) -> some View 使用您提供的标识符和名称空间定义一组具有同步几何图形的视图。

struct MatchedGeometryProperties 使用该功能可以在视图之间同步的一组视图属性。View.matchedGeometryEffect()

struct Namespace 一种动态属性类型,它允许访问由包含该属性的对象(例如,视图)的持久标识所定义的名称空间。

除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:https://www.55mx.com/post/132
标签:modifier修饰器Kwok最后编辑于:2021-04-07 14:07:19
0
感谢打赏!

《【SwiftUI基础篇】18 视图呈现(view-rendering)的属性修改器》的网友评论(0)

本站推荐阅读

热门点击文章