Xcode报错:Value of type ‘some View’ has no member ‘strokeBorder’
Xcode报错:Value of type ‘some View’ has no member ‘strokeBorder’

Xcode报错:Value of type ‘some View’ has no member ‘strokeBorder’

在Xcode中给Rectangle添加描边时,发现Xcode报错。

Rectangle()
    .foregroundColor(.white)
    .frame(width: 140,height: 100)
    .clipped()
    .cornerRadius(10)
    .strokeBorder(Color.red, lineWidth: 20)

报错内容:Value of type ‘some View’ has no member ‘strokeBorder’。

问题原因:strokeBorder 是用于 Shape 类型(例如 Rectangle、Circle 等)的,而对 Rectangle 添加了其他修饰符(例如 cornerRadius),导致它不再是 Shape 类型,而变成了 some View 类型,因此无法直接调用 strokeBorder。

解决方案

将 strokeBorder 应用在原始 Rectangle 上,而不是应用其他修饰符之后的视图上。可以通过以下方法修复:

Rectangle()
    .strokeBorder(Color.red, lineWidth: 20) // 首先应用描边
    .background( // 设置背景为白色并裁剪
        Rectangle()
            .foregroundColor(.white)
            .cornerRadius(10)
    )
    .frame(width: 140, height: 100)
    .clipped() // 裁剪边框外多余部分

strokeBorder 必须直接作用在 Shape 上,而不是修改后的视图。

问题得到解决。

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注