前面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
《【SwiftUI基础篇】18 视图呈现(view-rendering)的属性修改器》的网友评论(0)