草庐IT

swift - 如何避免 SwiftUI 中的嵌套导航栏?

我使用SwiftUI构建了一个NavigationView,它将用户带到另一个NavigationView,最后带到一个简单的View。当我到达最后一个View时,我可以看到两个后退按钮和一个非常大的导航栏。我想要一个类似于iOS设置应用的导航结构,其中一个导航列表转到另一个导航列表,每个导航列表都有一个返回上一屏幕的后退按钮。有人知道怎么解决吗? 最佳答案 您的View层次结构中应该只有一个NavigationView,作为菜单View的祖先。然后,您可以在该层次结构的任何级别使用NavigationLink。因此,例如,您的Ro

swift - 使用 SwiftUI 时尝试在 View 上显示工作表时应用程序崩溃

我正在尝试使用.sheet()在SwiftUI中呈现另一个View的View.当这运行时,我的应用程序崩溃即使在模拟器上运行也没有堆栈跟踪并显示此错误:EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)通过尝试呈现Text("Test")而不是我的自定义View,我已经确定呈现的View不是问题,但我仍然遇到相同的错误。.sheet(isPresented:self.$isPresenting){()->TextinreturnText("Thisisatest")}这是设置View并尝试在按下绿色按钮时呈现另一个View的代码。在

swift - 我可以在 SwiftUI 中使用颜色文字吗

我想使用颜色文字使用Assets目录中的颜色Assets。在UIKit中,我们可以直接使用colorliteral有没有办法在SwiftUI中使用colorliterals我用UIColor参数从Color初始值设定项中搜索,但没有找到 最佳答案 注意:从Xcode11Beta5开始,Color已经有一个初始化程序,不需要实现它。所以你可以像这样使用colorLiteral:Color(#colorLiteral(red:1,green:0,blue:0,alpha:1))或任何其他CGColor、UIColor(或NSColorf

ios - 按下按钮时显示新的 SwiftUI View

我想在使用SwiftUI的应用程序上有一个登录表单。我有两个按钮:登录和注册。我希望能够按下注册按钮并让我制作的新SwiftUIView出现/替换另一个View。这是我的按钮代码:letsignupButton=Color(red:103.0/255.0,green:104.0/255.0,blue:255.0/255.0)lettext:Stringvarbody:someView{Button(action:{}){Text(text).accentColor(.white)//.frame(minWidth:0,maxWidth:300).frame(width:200).pad

ios - SwiftUI 和 MVVM 设计模式

我正在努力思考如何使用MVVM设计模式和SwiftUI实现以下目标。我只想拥有1个网络操作队列实例(使用OperationQueue),其中任何需要发送任何网络请求的View模型,但我听说创建单例不是首选,我应该传递网络队列对象在需要的地方。因此,如果我在SceneDelegate中创建网络操作队列的实例并将它们传递到ContentView初始化程序并将其存储在一个对象中,然后传递到随后创建的View中。根据我的理解,View应该只拥有ViewModel,这似乎不是好的MVVM设计实践?实现此目标的最佳方法是什么?编辑:对此进行了更多思考,我可以通过它的构造函数将它传递到View中,然

swift - 如何使用 SwiftUI 拖动工作 slider

我想拖动一个slider,当然也让它滑动。我可以做其中之一,但我不能两者都做。我怎样才能拖动并有一个工作slider?我也试图找到一种方法来删除手势,但我找不到这样做的方法。还尝试了Apple“ComposingSwiftUIGestures”文档中的“SequencedGestureStates”代码,并引入一个标志来打开/关闭具有相同结果的拖动,拖动或滑动不是两者。我还尝试将slider放入容器(VStack)并将拖动手势附加到它,但这也不起作用。importSwiftUIstructContentView:View{@Statevarpos=CGSize.zero@Stateva

swift - 在 SwiftUI 中使 ScrollView 内容填充其父级

我很想构建一个滚动屏幕,所以我想将它嵌入ScrollView。但是我无法实现它,View只是缩小到其压缩后的大小。假设我希望ScrollView垂直滚动,所以我希望内容与scrollView的宽度相匹配。所以我使用这样的预览:structScrollSubview_Previews:PreviewProvider{staticvarpreviews:someView{functextfield()->someView{TextField(.constant("Text")).background(Color.red)}returnGroup{textfield()ScrollView{

ios - 如何合并 Framework SwiftUI

我们只能从iOS13.0+使用FrameworkSwiftUI。那么如何从部署Target10.0或至少12.0中合并此框架。 最佳答案 尽管@DenFav完全正确-使用SwiftUI支持低于iOS13的部署目标很痛苦,但这是可能的。步骤:弱链接框架(我用的是这个answer):Adding-weak_frameworkSwiftUItoOtherLinkerFlagsfixedmyissue用canImport包装所有SwiftUI调用(参见answer):#ifcanImport(SwiftUI)&&canImport(Comb

swift - 在 map SwiftUI 上显示用户位置

我正在尝试加载map并在用户位置上设置初始位置,并使用SwiftUI在map上显示用户位置。我不知道如何在SwiftUI中执行此操作。我尝试将“view.showsUserLocation=true”放入updateUIView函数中,但它不起作用。importSwiftUIimportMapKitstructMapView:UIViewRepresentable{funcmakeUIView(context:Context)->MKMapView{MKMapView(frame:.zero)}funcupdateUIView(_view:MKMapView,context:Conte

swift - SwiftUI 中的旋转木马/侧边栏列表样式

有两种列表样式处于非事件状态并且不会在SwiftUI中产生任何结果。尝试使用.carousel和.sidebar样式来弄明白。structContentView:View{varbody:someView{List{Text("Hello")}.listStyle(.carousel)//Or.sidebar}}这是由于测试版(错误)造成的,还是我错过了什么?该列表没有出现在我的iPhone上。 最佳答案 SidebarListStyle仅适用于macOS,因为CarouselListStyle仅适用于watchOS。这是在macO