草庐IT

swiftui-navigationlink

全部标签

ios - SwiftUI 无法点击 HStack 的 Spacer

我有一个ListView,列表的每一行都包含一个带有一些TextView和图像的HStack,如下所示:HStack{Text(group.name)Spacer()if(groupModel.required){Text("Required").color(Color.gray)}Image("ic_collapse").renderingMode(.template).rotationEffect(Angle(degrees:90)).foregroundColor(Color.gray)}.tapAction{self.groupSelected(self.group)}这似乎工

ios - 如何在 SwiftUI 中获取 iPhone 的屏幕宽度?

我想将图像框架调整为一个正方形,该正方形与iPhone屏幕的宽度相同,因此高度值(屏幕宽度)也相同。以下代码不起作用,因为它为图像提供了与View相同的高度。varbody:someView{Image("someImage").resizable().frame(minWidth:0,maxWidth:.infinity,minHeight:0,maxHeight:.infinity,alignment:.center).clipped()} 最佳答案 您可以为其创建一个UIScreen扩展。喜欢:extensionUIScree

SwiftUI 教程 PresentationButton Bug

我开始试验新的SwiftUI框架,该框架在WWDC2019上宣布,并在https://developer.apple.com/tutorials/swiftui上开始教程。.现在我要通过PresentationButton将配置文件连接到主屏幕。更准确地说,我在谈论Home.swift中的这段代码:.navigationBarItems(trailing:PresentationButton(Image(systemName:"person.crop.circle").imageScale(.large).accessibility(label:Text("UserProfile"))

ios - SwiftUI:如何从 Slider 获取持续更新

我正在像这样试验SwiftUI和Slider控件:structMyView:View{@Stateprivatevarvalue=0.5varbody:someView{Slider(value:$value){pressedin}}}我试图在用户拖动Slider时不断更新它,但它似乎只在值更改结束时更新值。有人玩过吗?知道如何让SwiftUISlider发出一连串的值(value)变化?也许结合? 最佳答案 在SwiftUI中,您可以将slider等UI元素绑定(bind)到数据模型中的属性,并在其中实现业务逻辑。例如,要获得连续

SwiftUI:支持多种模式

我正在尝试设置一个View,该View可以根据点击的按钮显示多个模式。当我只添加一个sheet时,一切正常:.sheet(isPresented:$showingModal1){...}但是当我添加另一张纸时,只有最后一张有效。.sheet(isPresented:$showingModal1){...}.sheet(isPresented:$showingModal2){...}更新我试图让它工作,但我不确定如何为modal声明类型。我收到错误消息:Protocol'View'canonlybeusedasagenericconstraintbecauseithasSelforass

ios - 是否可以迁移旧的 Xcode 项目以使用 SwiftUI?

我有一个使用Main.storyboard在Xcode10中制作的应用程序,我想将其迁移以使用Apple的新框架:SwiftUI。这已经成为可能了吗?我已经尝试在Info.plist中添加UIApplicationSceneManifest键,我更改了AppDelegate.swift以使用场景,我创建了SceneDelegate.swift即使那样我也做不到 最佳答案 我假设您使用的是Xcode11GM和macOSMojave或Catalina。随着plist中的更改,您必须在应用程序委托(delegate)中添加UISceneS

swift - 使用 SwiftUI 转到新 View

我有一个使用SwiftUI的带有按钮的基本View,我正尝试在点击该按钮时显示一个新的屏幕/View。我该怎么做呢?我是否应该为此View创建一个委托(delegate),告诉应用的SceneDelegate呈现一个新的ViewController?importSwiftUIstructContentView:View{varbody:someView{VStack{Text("HelloWorld")Button(action:{//gotoanotherview}){Text("DoSomething").font(.largeTitle).fontWeight(.ultraLig

ios - 测试 SwiftUI 正文 View 和属性

我正在研究如何对SwiftUIView代码进行单元测试。我有以下定义:structContentView:View{varbody:someView{Text("HelloWorld").font(.title).fontWeight(.bold)}}我可以这样测试它:functestBody(){letcv=ContentView()letbody=cv.bodyXCTAssertNotNil(body)guardlettext=bodyas?Textelse{XCTFail();return}XCTAssertEqual(Text("HelloWorld").font(.title

swift - 从现有的 SwiftUI @States 派生绑定(bind)

我一直在研究SwiftUI和Combine,感觉可能有一种方法可以在View中获取现有的@State属性并创建一个新属性。例如,我有一个密码创建View,其中包含用户的密码和passwordConfirm字段。我想获取这两个@State属性并派生一个新的@State,我可以在我的View中使用它来断言输入是否有效。因此,为简单起见:不空且不相等。Apple文档说thereisapublisher在绑定(bind)上,尽管我似乎无法理解它。这是一些无法运行的伪代码:importSwiftUIimportCombinestructCreatePasswordView:View{@State

ios - SwiftUI 从 var body 调用 mutating func

在我关注的Ray教程中,我设置了以下属性structContentView:View{varrTarget=Double.random(in:0..这些当然是不可变的,所以我不能从func修改它们,除非我将func标记为mutatingfuncreset(){rTarget=Double.random(in:0..无法分配给属性:'self'是不可变的但是我从varbody调用了这个函数mutatingfuncreset(){rTarget=Double.random(in:0..Alert{returnAlert(title:Text("YourScore"),message:Tex