小编paw*_*222的帖子

在 iOS 14 中以编程方式打开 UIDatePicker

我有这个正常UIDatePicker(对不起,它不是英文,请忽略):

我的日期选择器

但问题是它只在我按下日期选择器时出现:

图片

而且我想知道如何仅使用代码显示第一张图像中的日期选择器(它用模糊效果覆盖所有屏幕),因此用户无需按日期选择器来显示日期选择器。谢谢。

uidatepicker uikit swift ios14

50
推荐指数
6
解决办法
2万
查看次数

如何在 SwiftUI 中隐藏导航后退按钮?

navigationBarBackButtonHidden(_ hidesBackButton: Bool) -> some View
Run Code Online (Sandbox Code Playgroud)

但它仍然显示后退按钮,我想在点击时删除后退功能。

swift swiftui

32
推荐指数
5
解决办法
2万
查看次数

SwiftUI iOS14 - NavigationView + List - 不会填充空间

自 iOS 14 更新以来,我遇到了 NavigationView 中的 List 问题。

这是代码的简单细分 - 我已经将所有未显示问题的内容都进行了条带化

struct ContentView: View {
    
    var views = ["Line 1", "Line 2", "Line 3"]
    
    var body: some View {
        
        NavigationView {
            
            VStack {
                
                List {
                    
                    ForEach(views, id: \.self) { view in
                       
                        VStack {
                        Text("\(view)")
                        }
                        .background(Color.red)
                        
                    }
                    
                }
                
            }
            
        }
        
    }
}
Run Code Online (Sandbox Code Playgroud)

这会产生以下结果:

导航视图中的列表

我无法弄清楚为什么列表会像那样悬停在导航视图的中心。据我所知,这应该会生成一个占据所有可用空间的列表视图(导航栏所在的顶部除外)。

事实上,当在 iOS 13.5 上运行时,我得到的结果如下图所示:

在导航视图 2 中列出

我已经通读了文档,但无法弄清楚为什么会突然发生这种行为。

任何帮助将不胜感激。

谢谢

swift swiftui swiftui-list ios14 swiftui-navigationview

26
推荐指数
1
解决办法
3595
查看次数

SwiftUI:什么是 @AppStorage 属性包装器

我曾经使用以下语句将重要的应用程序数据(如登录凭据)保存到 UserDefaults 中:

UserDefaults.standard.set("sample@email.com", forKey: "emailAddress")
Run Code Online (Sandbox Code Playgroud)

现在,我知道 SwiftUI 引入了新的属性包装器,称为:

@AppStorage

谁能解释一下新功能的工作原理?

ios swift userdefaults swiftui ios14

23
推荐指数
3
解决办法
7782
查看次数

除了导航到另一个视图之外,NavigationLink 是否可以执行操作?

我正在尝试创建一个按钮,它不仅可以导航到另一个视图,还可以同时运行一个函数。我尝试将 NavigationLink 和 Button 嵌入到 Stack 中,但我只能单击 Button。

ZStack {
    NavigationLink(destination: TradeView(trade: trade)) {
        TradeButton()
    }
    Button(action: {
        print("Hello world!") //this is the only thing that runs
    }) {
        TradeButton()
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui

22
推荐指数
5
解决办法
7473
查看次数

WidgetKit:.timer 文本样式将其扩展以填充宽度,而不是占用空间来适应所包含的字符串

.timer 文本样式将其扩展以填充宽度,而不是占用空间来容纳所包含的字符串。有办法改变这种行为吗?

\n
Text(entry.timeFinished, style: .timer).multilineTextAlignment(.leading).opacity(0.5).background(Color.red)\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n
Text("3:41").opacity(0.5).background(Color.blue)\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

整个视图:

\n
struct TimePieceWidgetEntryView: View {\n    \n    var entry: Provider.Entry\n    \n    var body: some View {\n        VStack {\n            Text("Timer \xe2\x8f\xb1")\n            Text(Date().addingTimeInterval(600), style: .timer).opacity(0.5)\n        }.font(.title.bold().monospacedDigit())\n        .padding(5)\n        .widgetURL(entry.url)\n    }\n    \n}\n
Run Code Online (Sandbox Code Playgroud)\n

ios swift widgetkit swiftui

22
推荐指数
1
解决办法
1353
查看次数

如何在 WidgetKit 中重置意图扩展配置

我有一个用户可以登录的应用程序。如果用户已登录,则我会为我的小部件显示一个占位符,并且可以通过意图扩展对其进行配置。

配置有两个选项:

  • 第一个选项取决于当前登录用户的用户名。
  • 第二个选项取决于第一个选项的值。

这适用于 1 个用户,但是,如果用户注销,然后使用不同的帐户登录,当他们尝试配置小部件时仍选择旧的选定选项,这是错误的选项,因为它现在是不同的用户。此外,旧数据仍显示在小部件中。

如何在 WidgetKit 中重置小部件的配置?意思是,当用户尝试对其进行配置时,所有先前的配置都将被取消选择并且为空。

我试过

WidgetCenter.shared.reloadAllTimelines()
Run Code Online (Sandbox Code Playgroud)

但这只会重新加载时间线方法,而不会重置配置。

我查看了 Apple 的文档,也找不到任何相关信息。

非常感谢,

swift widgetkit ios14

17
推荐指数
1
解决办法
890
查看次数

SwiftUI iOS14 - 禁用键盘回避

有没有办法禁用 iOS14 上的本机键盘避免?

iOS13中没有键盘回避,所以我想实现我自己的,但是当我这样做时,iOS14上的本机键盘仍然处于活动状态,所以我的实现和本机键盘同时运行,这是我不希望的。

我的部署目标是iOS13,所以我需要一个同时适用于iOS13和iOS14的解决方案。

keyboard swiftui ios14

16
推荐指数
1
解决办法
9971
查看次数

iOS 14 小部件:使用列表时小部件不呈现

我正在尝试使用 iOS 14 小部件并遇到一个奇怪的问题。当我List在小部件视图中使用 a 时,我的小部件没有加载。如果我用HStackVStack等一切工作正常。

为了举例,这里有一些简单的代码:

struct WidgetView: View {

   var body: some View {
    
       List {
           Text("Test 1")
           Text("Test 2")
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

结果我看到了这张图片: 在此处输入图片说明

同样,这一切都适用于其他元素,这只发生在List.

swift widgetkit swiftui swiftui-list ios14

15
推荐指数
2
解决办法
2042
查看次数

在 iOS 14 的 SwiftUI 中的主应用程序和小部件之间共享数据

@main
struct ClockWidgetExt: Widget {
    private let kind: String = "ClockWidgetExt"
    
    public var body: some WidgetConfiguration {
        StaticConfiguration(kind: kind, provider: Provider(), placeholder: PlaceholderView()) { entry in
            HomeTestView()
        }
        .configurationDisplayName("My Widget")
        .description("This is an example widget.")
    }
}
Run Code Online (Sandbox Code Playgroud)

如何从我的主应用程序获取数据到小部件?

widget swift widgetkit swiftui ios14

14
推荐指数
1
解决办法
6349
查看次数