首先,请注意,您执行此操作的方式不是剪切图像。也许您没有注意到图像是否太小,或者其背景与画布的颜色相同。但是即使使用beta 4语法,也需要添加.clipShape()
。
回到您的问题,根据Beta 5发行说明:
不建议使用background(:alignment :)和border(:width :)修饰符的复杂重载。在背景(:alignment :)或overlay(:alignment :)中使用形状来绘制形状。(53067530)
因此,模式将如下所示:
.overlay(RoundedRectangle(...).stroke(...).foregroundColor(...))
在您的特定情况下:
Image("mypic").resizable().frame(width: 300, height: 300)
.clipShape(RoundedRectangle(cornerRadius: 30))
.overlay(RoundedRectangle(cornerRadius: 30).stroke(lineWidth: 2).foregroundColor(Color.black))