【问题标题】:SwiftUI Stroke Colour and Width?SwiftUI 笔触颜色和宽度?
【发布时间】:2020-07-10 18:13:32
【问题描述】:

我正在关注 Apple 的“Creating and Combining View”SwiftUI 教程,在第 4 节第 5 步中,我被要求添加一个灰色描边,我可以这样做,但没有显示颜色或给我线宽。

            .clipShape(Circle())
            .overlay(
                Circle().stroke(StrokeStyle)) 

是我做错了什么还是这是某种错误?

正如苹果的例子所示;

           .clipShape(Circle())
           .overlay(
               Circle().stroke(Color.gray, lineWidth: 4))

我可以输入它,但不明白为什么它没有从 Inspector 中提取颜色。我什至可以将颜色从灰色修改为白色,但我又看不到代码中引用的这个

也可以从 Inspector 添加/设置 lineWidth 吗?添加阴影的下一步非常有意义,但这一步真的让我很难过。

【问题讨论】:

    标签: swift xcode swiftui stroke


    【解决方案1】:

    Circle()stroke(...) 函数被多次重载。

    函数重载或方法重载是创建的能力 具有不同实现的多个同名函数。

    您可以在此处阅读有关函数重载的信息:Function overloading

    这是stroke(...)的四种不同实现的文档

    stroke(style:)

    stroke(lineWidth:)

    stroke(_:style:)

    stroke(_:lineWidth:)

    所有这些都是有效的,您可以决定使用哪一种或哪一种最适合您的需求。

    Circle().stroke(Color.black, lineWidth: 1)  
    Circle().stroke(style: StrokeStyle(lineWidth: 1, lineCap: .butt, lineJoin: .bevel, miterLimit: 1, dash: [CGFloat](), dashPhase: 1))
    

    这两个实现都做同样的事情,但是使用了 stroke(...) 函数的不同实现。

    【讨论】:

      【解决方案2】:

      如果您的意思是颜色文字,那么它们是 UIColor 类型,因此您必须将它们显式包装在 Color 构造函数中,如下所示

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-04
        • 2020-12-16
        • 1970-01-01
        • 1970-01-01
        • 2017-06-23
        相关资源
        最近更新 更多