SwiftUI: 使用 ImagePaint 制作边框和填充

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI: 使用 ImagePaint 制作边框和填充相关的知识,希望对你有一定的参考价值。

参考技术A SwiftUI严重依赖于协议,使用绘图时可能会有些混乱。例如,我们可以将 Color 用作视图,但它也符合 ShapeStyle ——用于填充,笔触和边框的另一种协议。

实际上,这意味着我们可以修改默认的文本视图,使其具有红色背景:

或红色边框:

作为对比,我们可以将图像用作背景:

但是使用相同的图像作为边框将不起作用:

如果您考虑一下,这是有道理的——除非图像大小正确正确,否则您对外观应该几乎没有控制权。

为了解决这个问题,SwiftUI为我们提供了一种专用类型,该类型可以完全控制应如何渲染图像的方式包装图像,这又意味着我们可以将它们用于边框和填充而不会出现问题。

该类型称为 ImagePaint ,它是使用一到三个参数创建的。至少需要给它一个 Image 作为其第一个参数,但是您也可以在该图像中提供一个矩形,用作在0到1(第二个参数)范围内指定的图形源。,以及该图像的比例(第三个参数)。这些第二和第三个参数具有合理的默认值“整个图像”和“ 100%比例”,因此有时您可以忽略它们。

举例来说,我们可以使用0.2比例尺绘制示例图像,这表示该图像的显示尺寸为正常尺寸的1/5:

如果要尝试使用 sourceRect 参数,请确保传入相对大小和位置的 CGRect 0表示“开始”,1表示“结束”。例如,这将显示示例图像的整个宽度,但仅显示中间一半:

值得一提的是, ImagePaint 可用于查看背景和描边形状。例如,我们可以创建一个胶囊,将示例图像平铺为笔划:

ImagePaint 将自动继续平铺其图像,直到填充其区域为止——它可以与背景,笔触,边框和任何大小的填充一起使用。

赏我一个赞吧~~~

以上是关于SwiftUI: 使用 ImagePaint 制作边框和填充的主要内容,如果未能解决你的问题,请参考以下文章

uniapp 图片涂鸦画笔 Ba-ImagePaint

使用 SwiftUI 更改 macOS 窗口级别(制作浮动窗口)

使用 ForEach 循环制作多行 Component() ? [SwiftUI]

如何使用 SwiftUI 制作具有绝对位置的底栏

在 SwiftUI 中使用 animatableData 制作动画的问题

尝试使用 SwiftUI 制作可滑动的图像视图时,索引意外更改