Questions tagged «swiftui»

SwiftUI是Apple的用于定义图形用户界面的声明性Swift API。在任何平台上使用此标签来查询有关SwiftUI的问题。

1
使用自定义按钮扩展SwiftUI键盘
我正在尝试找到一种将键或按钮添加到SwiftUI数字键盘的方法。我发现的唯一参考资料说这是不可能的。在Swift世界中,我添加了一个带有按钮的工具栏,以关闭键盘或执行其他功能。 我什至会用顶部的按钮构建一个ZStack视图,但是我找不到将numberPad添加到我自己的视图中的方法。 在这种情况下,我真正想做的就是在输入数据时关闭numberPad。我首先尝试将SceneDelegate修改为在点击时关闭,但是仅当我在另一个文本或文本字段视图中而不是在视图的开放空间中单击时,此方法才起作用。 window.rootViewController = UIHostingController(rootView: contentView.onTapGesture { window.endEditing(true) }) 理想情况下,我会将“完成”键添加到左下角。其次,如果可以在SwiftUI中完成,则添加一个工具栏。 任何指导将不胜感激。 Xcode版本11.2.1(11B500)
10 ios  xcode  keyboard  swiftui 

1
如何使用SwiftUI将工具栏添加到macOS应用程序?
我正在尝试使用SwiftUI将标题栏中的工具栏添加到macOS应用程序,类似于下面所示。 我无法找到一种使用SwiftUI实现此目的的方法。目前,我的视图中有工具栏(仅具有文本字段),但我想将其移到标题栏中。 我当前的代码: struct TestView: View { var body: some View { VStack { TextField("Placeholder", text: .constant("")).padding() Spacer() } } } 因此,就我而言,我需要在工具栏内添加文本字段。

3
Swiftui-如何使用环境对象作为参数来初始化observedObject?
我不确定这是否是我们生活在这个勇敢的新SwiftUI世界中的反模式,但是从本质上来说,我有一个@EnvironmentObject,其中保存了一些我的视图可以调用的基本用户信息。 我还有一个@ObservedObject,它拥有此视图所需的一些数据。 当视图出现时,我想使用该@EnvironmentObject初始化@ObservedObject: struct MyCoolView: View { @EnvironmentObject userData: UserData @ObservedObject var viewObject: ViewObject = ViewObject(id: self.userData.UID) var body: some View { Text("\(self.viewObject.myCoolProperty)") } } 不幸的是,直到初始化后,我才能在环境变量上调用self: “不能在属性初始化程序中使用实例成员'userData';属性初始化程序在'self'可用之前运行。” 我可以看到一些可能的前进路线,但是它们都像黑客一样。我应该如何处理?
9 ios  swift  swiftui  xcode11 

2
SKView警告日志
当运行SwiftUI&SpriteKit应用程序时,我在日志中收到以下消息: 2019-11-18 21:58:57.631912 + 0000 PixelBattles [2812:1215803] SKView:ignoreRenderSyncInLayoutSubviews为否。在没有处理程序的情况下调用_renderSynchronouslyForTime 接收此日志我做错了什么,我应该为此担心吗?可能是错误吗? 难道是SwiftUI无法弄清楚如何进行布局SKView? 主要编辑: 如果需要代码,可以在以前的编辑中看到它。我在下面说明为什么我认为它不再有意义了。 我已向Apple发送了一些反馈(FB7456217)。我已经删除了代码,因为我不再怀疑这与我的代码有关。我创建了一个空白游戏项目,没有SwiftUI,并且仍然立即获得了相同的警告日志。 因此,即使使用默认的项目模板,该日志仍会出现在设备和模拟器中。如果得到有用的答复,我将在此问题上进行更新。 我仍然没有收到任何回音-自从我半个月前发布此信息以来,是否有人获得任何新信息?我仍然有这些警告!

1
如何在SwiftUI中配置ContextMenu按钮以进行删除和禁用?
我尝试在中配置按钮contextMenu,但无法正常工作。 Text("A label that have context menu") .contextMenu { Button(action: { // remove it }) { Text("Remove") .foregroundColor(.red) // Not working Image(systemName: "trash") }.disabled(true) // Not working } 我有的: 我要的是:(删除和通话按钮) 我会在其中创建一个UIAction类似以下内容的文件,UIKit但找不到任何修饰符或将其带到SwiftUI的方法: let delete = UIAction(title: "Remove", image: UIImage(systemName: "trash"), attributes: .destructive) { action in // remove it }

1
工具栏中带有分段控件的macOS SwiftUI应用选项卡视图
我正在尝试使用SwiftUI创建一个macOS应用程序。我需要一个TabView或类似的东西,但是当我使用TabView分段控件时,它不在macOS工具栏中。单击此处查看我想要的示例 我当前的代码是: import SwiftUI struct ContentView: View { var body: some View { TabView { Text("1") .tabItem { Text("1") } } } } 结果在这里作为图像 分段控件需要在工具栏而不是视图中。 谢谢。
9 swift  xcode  macos  swiftui 

3
SwiftUI NavigationLink隐藏箭头
有没有办法隐藏自动添加的导航链接视图右侧的箭头? 我想使用NavigationView->列表-> HStack-> NavigationLink_1-NavigationLink_2显示图像网格 NavigationLinks中有箭头,看起来很奇怪

1
如何在Xcode中调试“前提条件失败”?
我在Xcode 11上构建了SwiftUI应用程序,但是当我切换到应用程序中的特定选项卡时,它立即终止。 问题是,它始终指向Application Delegate文件,我认为这并不是真正的问题。我还在控制台中收到此错误,仅此precondition failure: invalid input index: 2而已,没有更多有关此错误来自何文件,数组或函数的更多详细信息。 Xcode中是否可以隔离导致此问题的任何方法?

1
如何在Swift的绑定中解开可选值?
我正在使用SwiftUI构建应用,并希望将a转换Binding<Value?>为Binding<Value>。 在我的应用程序中,我有一个AvatarView,它知道如何为特定用户渲染图像。 struct AvatarView: View { @Binding var userData: UserData ... } 我的应用程序拥有一个ContentView拥有两个绑定的:一个ID用户字典,以及我们应显示其头像的用户ID。 struct ContentView: View { @State var userById: Dictionary<Int, UserData> @State var activeUserId: Int var body: some View { AvatarView(userData: $userById[activeUserId]) } } 问题:上面的代码没有合并,因为$userById[activeUserId]它是类型的,Binding<UserData?>并且AvatarView包含一个Binding<UserData>。 我尝试过的事情 $userById[activeUserId]!不起作用,因为它正在尝试打开Binding<UserData?>。您只能解开一个Optional,而不能解开一个Binding<Optional>。 $(userById[activeUserId]!)由于我尚不了解的原因而无法正常工作,但是我认为有关$问题在编译时已解决,因此您似乎无法在任意表达式前添加前缀$。
9 ios  swift  swiftui  combine 

1
SwiftUI行高列表-如何控制?
我在SwiftUI中有一个简单的List。代码和屏幕截图如下。我想减少列表中每一行的高度(以使行和文本行之间的间距更小)。 我已经尝试向HStack添加一个“ .frame(height:20)”,但是它只允许增加行距! 有没有办法做到这一点? 谢谢! 杰拉德 import SwiftUI struct PressureData: Identifiable { let id: Int let timeStamp: String let pressureVal: Int } struct ContentView : View { @State var pressureList = [ PressureData(id: 0, timeStamp: "11:49:57", pressureVal: 10), PressureData(id: 1, timeStamp: "11:49:56", pressureVal: 8), PressureData(id: 2, timeStamp: "11:49:55", pressureVal: 9), …

2
如何在SwiftUI中返回与UIKit中相同的行为(interactivePopGestureRecognizer)
交互式弹出手势识别器应允许用户在滑动超过屏幕的一半(或这些行周围的内容)时返回导航堆栈中的上一个视图。在SwiftUI中,如果滑动距离不够远,手势不会被取消。 SwiftUI: https ://imgur.com/xxVnhY7 UIKit: https ://imgur.com/f6WBUne 题: 使用SwiftUI视图时能否获得UIKit行为? 尝试次数 我试图将UIHostingController嵌入UINavigationController内,但其行为与NavigationView完全相同。 struct ContentView: View { var body: some View { UIKitNavigationView { VStack { NavigationLink(destination: Text("Detail")) { Text("SwiftUI") } }.navigationBarTitle("SwiftUI", displayMode: .inline) }.edgesIgnoringSafeArea(.top) } } struct UIKitNavigationView<Content: View>: UIViewControllerRepresentable { var content: () -> Content init(@ViewBuilder content: @escaping () -> …
9 ios  swift  swiftui 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.