小编wk.*_*tal的帖子

SwiftUI 字体在复杂视图中缩放

我的目标是确保容器中的文本根据其父级进行缩放。当容器只包含一个 Text 视图时,它工作得很好,如下所示:

import SwiftUI

struct FontScalingExperiment: View {
    var body: some View {
        Text("Hello World ~!")
            .font(.system(size: 500))
            .minimumScaleFactor(0.01)
            .lineLimit(1)
            .padding()
            .background(
                RoundedRectangle(cornerRadius: 20)
                    .fill(Color.yellow)
                    .scaledToFill()  
        )
    }
}

struct FontScalingExperiment_Previews: PreviewProvider {
    static var previews: some View {
        Group {
            FontScalingExperiment()
                .previewLayout(.fixed(width: 100, height: 100))
            FontScalingExperiment()
                .previewLayout(.fixed(width: 200, height: 200))
            FontScalingExperiment()
                .previewLayout(.fixed(width: 300, height: 300))
            FontScalingExperiment()
                .previewLayout(.fixed(width: 400, height: 400))
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

结果

但是,当我们有更复杂的 View 时,我们不能使用相同的方法根据其父级大小自动缩放文本,例如:

import SwiftUI

struct IndicatorExperiment: View {
    var body: some View { …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

10
推荐指数
1
解决办法
2340
查看次数

SwiftUI DatePicker 绑定可选日期,有效 nil

我正在试验来自https://alanquatermain.me/programming/swiftui/2019-11-15-CoreData-and-bindings/ 的代码

我的目标是让 DatePicker 绑定到 Binding< Date? > 允许 nil 值而不是初始化 Date(); 这很有用,如果您的核心数据模型实体中有 Date 属性接受 nil 作为有效值。

这是我的快速游乐场代码:

extension Binding {
    init<T>(isNotNil source: Binding<T?>, defaultValue: T) where Value == Bool {
        self.init(get: { source.wrappedValue != nil },
                  set: { source.wrappedValue = $0 ? defaultValue : nil})
    }
}

struct LiveView: View {
    @State private var testDate: Date? = nil
    var body: some View {
        VStack {
            Text("abc")

            Toggle("Has Due Date",
                   isOn: Binding(isNotNil: $testDate, defaultValue: Date()))

            if testDate != …
Run Code Online (Sandbox Code Playgroud)

core-data ios swift swift-playground swiftui

10
推荐指数
1
解决办法
2713
查看次数

标签 统计

ios ×2

swift ×2

swiftui ×2

core-data ×1

swift-playground ×1