Swiftui 绘制自定义矩形

Swiftui 绘制自定义矩形,swiftui,Swiftui,我想做一个顶部有两个圆角半径的矩形。但是rectangle()方法不支持这一点 我还尝试了GeometryReader,但没有正常工作。我在本文中为此编写了一个示例。最后一个例子就是这样做的。答案确实是GeometryReader。如果您在如何使其工作方面遇到问题,请在此处发布您的代码,以便我们可以帮助您 更新 以下是您如何复制您在评论中包含的图像: struct ContentView:View{ 变量体:某些视图{ 圆角(颜色:黑色,tl:35,tr:35)。边框(高度:200) } } 结

我想做一个顶部有两个圆角半径的矩形。但是
rectangle()
方法不支持这一点


我还尝试了
GeometryReader
,但没有正常工作。

我在本文中为此编写了一个示例。最后一个例子就是这样做的。答案确实是GeometryReader。如果您在如何使其工作方面遇到问题,请在此处发布您的代码,以便我们可以帮助您

更新

以下是您如何复制您在评论中包含的图像:

struct ContentView:View{
变量体:某些视图{
圆角(颜色:黑色,tl:35,tr:35)。边框(高度:200)
}
}
结构圆角:视图{
变量颜色:颜色=.black
变量tl:CGFloat=0.0
var tr:CGFloat=0.0
变量bl:CGFloat=0.0
变量br:CGFloat=0.0
var body:一些观点{
GeometryReader{中的几何体
路径{Path in
设w=几何体。尺寸。宽度
设h=几何体、尺寸、高度
//我们确保半径不超过边界尺寸
设tr=min(min(自tr,h/2),w/2)
设tl=min(min(self.tl,h/2),w/2)
设bl=min(min(self.bl,h/2),w/2)
设br=min(min(self.br,h/2),w/2)
移动路径(到:CGPoint(x:w/2.0,y:0))
addLine(to:CGPoint(x:w-tr,y:0))
添加弧(中心:CGPoint(x:w-tr,y:tr),半径:tr,起始角:角度(度:-90),终止角:角度(度:0),顺时针:假)
addLine(to:CGPoint(x:w,y:h-br))
添加弧(中心:CGPoint(x:w-br,y:h-br),半径:br,起始角:角度(度:0),终止角:角度(度:90),顺时针:假)
路径添加线(到:CGPoint(x:bl,y:h))
添加弧(中心:CGPoint(x:bl,y:h-bl),半径:bl,起始角:角度(度:90),终止角:角度(度:180),顺时针:假)
addLine(到:CGPoint(x:0,y:tl))
addArc(中心:CGPoint(x:tl,y:tl),半径:tl,起始角:角度(度:180),终止角:角度(度:270),顺时针:false)
}
.fill(self.color)
}
}
}

您好,您有您想要实现的目标的草图吗?你需要一个内有其他视图的矩形吗?我需要一个用作视图的形状。我在回答中发布了一些代码来创建你发布的图像。