草庐IT

swiftui-animation

全部标签

swift - 替代 SwiftUI ViewBuilder block 中的 switch 语句?

⚠️2020年6月23日编辑:从Xcode12开始,ViewBuilder将支持switch和iflet语句!我一直在尝试使用SwiftUI复制我的一个应用程序。它有一个RootViewController,它根据枚举值显示不同的subviewController。与在SwiftUI中一样,我们使用View而不是ViewController,我的代码如下所示:structRootView:View{@StatevarcontainedView:ContainedView=.homevarbody:someView{//customheadergoeshereswitchcontaine

ios - SwiftUI 文本对齐

在TextView的众多属性中,我找不到任何与文本对齐相关的属性。我在演示中看到它自动处理RTL,并且在使用View的body放置内容时,它总是自动将其居中。关于SwiftUI中的布局系统,我是否缺少一些概念?如果没有,我如何将文本对齐属性设置为Text? 最佳答案 您可以通过修饰符.multilineTextAlignment(.center)执行此操作。Text("CENTER").multilineTextAlignment(.center)AppleDocumentation 关

swift - 重复图案图像作为 SwiftUI 中的背景?

我正在尝试将图像设置为背景并在整个屏幕上重复它。在UIKit中,它就像一行代码一样简单:view.backgroundColor=UIColor(patternImage:UIImage(named:"background.png"))SwiftUI中是否有等效项?varbody:someView{HStack{VStack{Spacer()}Spacer()}.background(Image("background")//Needthispatternimagerepeatedthroughoutthepage)} 最佳答案 最

iOS swift : Transition Animation on same View Controller

我怎样才能在单个ViewController上获得过渡动画效果(如页面幻灯片)-这样看起来我正在过渡到一个新页面/Controller(尽管在同一个View中只有数据发生变化)?例如:我有一个UIViewController,它有Previous和Next按钮。单击下一步这些按钮时,不同的标题和图像将显示在“相同”UIViewController上。我知道这可以通过UIPageViewController来完成-但我是iOS的新手,发现以这种方式实现相当困难。 最佳答案 我也有同样的情况。但是因为我们不希望有复杂的幻灯片动画,所以我

swift - SwiftUI 应用程序的 NavigationView 中的 onAppear 和 onDisappear 是否按预期运行?

我想知道SwiftUI(我写这篇文章时是Xcode11beta6)中onAppear和onDisappear的行为是开发人员会觉得更有用的,还是只是一个问题而不是一个功能。现在,如果我们使用级联导航,正如您将在我附加的示例代码中找到的那样(在Xcode11b6中编译和运行良好),用户来回导航的控制台输出只会触发onAppear向前方向(意味着更深入)的新View负载的情况。在导航中:根->NestedView1->NestedView2->NestedView3,向每个View阶段添加调试助手时,.onAppear(perform:{print("onAppearlevelN")}).

ios - itemSize 没有使用 setCollectionViewLayout(toLayout, animated : true);

您好,我正在尝试使用UICollectionView并让它们具有多个布局。当我使用swift/obj-cssetCollectionViewLayout(toLayout,animated:true);动画确实重新排列了单元格,但单元格中的项目跳到了最终大小,而不是随着单元格逐渐增大,最终结果是动画看起来很糟糕。这是我正在切换的两种布局:{overrideinit(){super.init()minimumLineSpacing=20.0;minimumInteritemSpacing=0.0;itemSize=CGSizeMake(80.0,80.0)sectionInset=UIE

ios - UIView.animateWithDuration :animations:completion: gets canceled in XCTest

我正在尝试对UIView上的扩展进行单元测试,它调用animateWithDuration:animations:completion:。不幸的是,测试用例中的所有动画都立即取消,因此完成block的isFinished参数始终为false。有没有人知道如何让动画在测试用例中工作?这是我的Playground代码:importUIKitimportXCTestextensionUIView{funcfadeOut(duration:TimeInterval,completion:((Bool)->Void)?){UIView.animate(withDuration:duration,

ios - ScrollView 内容未填充 SwiftUI

我有一个ScrollView,其内容是一个VStack,其中包含一个ForEach循环以创建一些行而不是列表。列表有一些缺点,例如分隔符。我的问题是行没有填充ScrollView。我认为ScrollView宽度没有填满屏幕。NavigationView{Toggle(isOn:$onlineStatus){Text("OnlineOnly")}.padding([.leading,.trailing],15)ScrollView{VStack(alignment:.trailing){ForEach(onlineStatus?self.notes.filter{$0.dot==.gre

swift - 如何在平台 "UIKit for Mac"上使用 SwiftUI 打开文件对话框?

NSOpenPanel在“UIKitforMac”平台上不可用:https://developer.apple.com/documentation/appkit/nsopenpanel如果Apple不提供内置方式,我猜有人会创建一个基于SwiftUI和FileManager的库显示选择文件的对话框。 最佳答案 这是使用Catalyst和UIKit为macOS选择文件的解决方案在您的swiftUIView中:Button("Choosefile"){letpicker=DocumentPickerViewController(supp

swift - 将 ForEach 与绑定(bind)数组一起使用 (SwiftUI)

我的目标是从JSON动态生成表单。除了生成FormFieldView(基于TextField)并绑定(bind)到动态生成的View模型列表之外,我已经将所有内容放在一起。如果我将FormFieldView换成普通的TextView,它工作正常(见屏幕截图):ForEach(viewModel.viewModels){vminText(vm.placeholder)}对于ForEach(viewModel.viewModels){vminFormField(viewModel:$vm)}我试图将ConfigurableFormViewModel的viewModels属性设为@State