小编Pau*_*l B的帖子

SwiftUI Slider 的标签可见性

什么情况下SwiftUI Slider的标签可见? Sliderinits 可以接受标签参数,但我不明白这个标签的用途是什么?

 struct ContentView: View {
    @State private var slVal: CGFloat = -20
    var body: some View {
        Slider(value: $slVal, in: -40...40, minimumValueLabel: Text("-40"), maximumValueLabel: Text("40")) {
            Text("Invisible text") // This view is not visible 
        }
        .padding()
    }
 }
Run Code Online (Sandbox Code Playgroud)

放入Slider内部Form不会出现标签。我知道DatePicker的标签是否显示取决于.labelsHidden()修饰符以及修饰符DatePickerStyle的应用.datePickerStyle()。有类似的东西Slider吗?

slider swiftui

9
推荐指数
1
解决办法
4553
查看次数

具有相同案例名称和不同类型关联值的枚举

以下 Swift 代码编译:

enum GraphDataSource  {
    case array(data: [Double], start: Double?, step: Double?)
    case pairs(XYValues: [Double: Double])
    case pairs(dateValues: [Date: Double])
    case function((Double) -> Double?)

    func localizedName() -> String {
        // TODO: Create localizable strings
        return NSLocalizedString(Mirror(reflecting: self).children.first?.label ?? "", comment: "")
    }
}
Run Code Online (Sandbox Code Playgroud)

它有两个名为pairs. 但是当我尝试提取关联值时,结果是我无法选择我想要的值。

    var graphData = GraphDataSource.function(sin)

    switch graphData {
    case .pairs(dateValues: let vals):
        vals.keys.forEach({print($0)})
    case .pairs(XYValues: let xy): // without this case everyting compiles OK
        xy.keys.forEach({print($0)})
    default:
        break
    }
Run Code Online (Sandbox Code Playgroud)

错误是:“元组模式元素标签‘XYValues’必须是‘dateValues’”。这是正常的吗?感觉编译器应该禁止同名的情况或允许同时打开两者。

enums swift

8
推荐指数
1
解决办法
887
查看次数

关联值符合CaseIterable,RawRepresentable的枚举

我试图使具有关联值的枚举符合CaseIterable,RawRepresentable。当用rawValue初始化时,我对关联值的一些默认值很好。

enum GenresAssociated: CaseIterable, RawRepresentable, Equatable {
    case unknown(String)
    case blues(String)
    case classical(String)
    // Implementing CaseIterable
    typealias AllCases = [GenresAssociated]
    // Enums can have no storage, but the class they are in CAN. Note 'static' in declaration
    static var allCases: [GenresAssociated] = [.unknown(""), .blues(""), .classical("")]


    typealias RawValue = Int
    var rawValue: Int {

        // MARK: This causes a crash for unknown reason
        return GenresAssociated.allCases.firstIndex(where: {  if case self = $0 { return true } else { return false } } …
Run Code Online (Sandbox Code Playgroud)

enums swift

6
推荐指数
1
解决办法
970
查看次数

VStack 内出现意外的 GeometryReader 视图行为

有人可以解释一下原因吗:

GeometryReader将其内容放置在左上角,而不是中心。 GeometryReader占用所有可用空间。

struct ContentView: View {
    var body: some View {
        VStack(alignment: .center) {
            GeometryReader { geo in
                    Text("Hello, World!")
                        .frame(width: geo.size.width * 0.7, height: 40)
                        .background(Color.red)
            }
            .background(Color.yellow)

            Text("More text")
                .background(Color.blue)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它看起来是这样的:

几何阅读器左上角

我希望它将Text“Hello, World”视图放置在中心。

swift swiftui

5
推荐指数
1
解决办法
1241
查看次数

SwiftUI Animation 的时序曲线创建

连同预定义的动画曲线,这些是使用timingcurve( : : : :duration:)设置时序曲线的选项。它的参数 ( c0x, c0y, c1x, c1y)的含义是什么?曲线是如何建立的?缺乏文档。

swift swiftui

4
推荐指数
1
解决办法
553
查看次数

在 SwiftUI 中使用 NavigationStack 背后的自定义背景

这应该很简单,但我不知道如何在 NavigationStack 后面放置背景。对于 NavigationView,只需嵌入 ZStack 中,并在 NavigationView 之前调用背景视图即可(如旧文章中所述:如果在 SwiftUI 中使用 NavigationView,如何更改背景颜色?)相同的技术对我来说不适用于 NavigationStack 。这是我所拥有的:

   struct MyAngularGradient: View {
    var body: some View {
        ZStack {
            AngularGradient(gradient: Gradient(colors: [.red, .orange , .yellow, .green, .cyan, .blue, .indigo, .purple, .red]), center: .leading)
            AngularGradient(gradient: Gradient(colors: [.red, .orange , .yellow, .green, .cyan, .blue, .indigo, .purple, .red]), center: .leading)
                .offset(x: -8)
        }
        .ignoresSafeArea()
    }
}

var body: some View {
            ZStack{
                MyAngularGradient()
                NavigationStack {
                  ...
                }
                 .navigationViewStyle(.stack)
             } // end ZStack
Run Code Online (Sandbox Code Playgroud)

仅供参考,我在其他应用程序(带有 NavigationView)中使用了相同的 MyAngularGradient() 有什么想法吗?谢谢。

swiftui swiftui-navigationstack

4
推荐指数
1
解决办法
2845
查看次数

标签 统计

swift ×4

swiftui ×4

enums ×2

slider ×1

swiftui-navigationstack ×1