我尝试以固定的量插入路径,但由于某种原因,似乎无法正常工作。我做错了什么?
这很好用;它将绘制一个250 x250的矩形,并带有红色边框。
let frame = CGRect(origin: .zero, size: CGSize(width: 250, height: 250))
VStack {
Path { path in
path.addRect(frame)
}
.border(Color.red)
}.frame(width: frame.width, height: frame.height)
现在,我想插入任意数量的图形,比如说20。我假设我可以使用path(in:)
方法来完成此操作,但这似乎不起作用。
let frame = CGRect(origin: .zero, size: CGSize(width: 250, height: 250))
VStack {
Path { path in
path.addRect(frame)
}
.path(in: frame.insetBy(dx: 20, dy: 20))
.border(Color.red)
}.frame(width: frame.width, height: frame.height)
我以为看到的是一个230 x230的小矩形,边框是红色的,但实际上看到的是一个250 x250的矩形,边框是红色的。为什么会这样?我该如何正确应用插入?
PS:这个addRect(frame)
函数当然可以写成addRect(frame.insetBy(dx: 20, dy: 20))
,但是这里的rect是按照演示的。在实践中,我有一个包含几条线和几个点的路径,它不适用于insetBy(dx:dy:)
函数
1条答案
按热度按时间eyh26e7m1#
在
Path
上使用inset
的快速示例扩展:然而,我强烈建议***搜索和阅读其他方法。这看起来非常灵活:https://www.hackingwithswift.com/quick-start/swiftui/how-to-use-uibezierpath-and-cgpath-in-swiftui