我有一系列自定义的Shape
和一个ZStack
,有一个固定的框架,有没有办法增加每个自定义Shape
的大小,可以有各种大小,以适应Zstack
框架?
将绘制各种Shape
给定点的代码。
struct DrawShape: Shape {
var points: [CGPoint]
func path(in rect: CGRect) -> Path {
var path: Path = Path()
guard let startingPoint = points.first else {
return path
}
path.move(to: startingPoint)
for pointLocation in points {
path.addLine(to: pointLocation)
}
return path
}
}
2条答案
按热度按时间yws3nbqq1#
我的想法是
1.像往常一样画出路径
1.获取路径的
boundingRect
*
rect
是形状的可用面积boundingRect
比rect
宽,则使用它们宽度boundingRect
比rect
更细,则使用它们的高度(0, 0)
,则每个新点都需要减去原点|
|
yyyllmsg2#
有一种方法可以在保持长宽比的情况下将任何路径放入矩形中,而且这种方法很短。
测试它: