为什么用户登录后看不到动画?

2024-03-15

我创建了一个自定义 LaunchSreen,当用户未登录时它运行良好,但如果他登录了,我们就看不到动画(视图会直接转到主视图,并且不等待动画完成)。

你知道为什么吗?

import SwiftUI

struct LaunchScreen: View {
    @EnvironmentObject var session: SessionStore
    @State private var animationDone = false
    @State private var rotation = 0.0
    
    func getUser () {
        session.listen()
    }
    
    var body: some View {
        Group{
            if (session.session != nil && animationDone) {
                Home()
            }
            else if (session.session == nil && animationDone) {
                Login()
            }
            else {
                ZStack {
                    Color(#colorLiteral(red: 0.259467423, green: 0.5342320204, blue: 0.7349982858, alpha: 1))
                    VStack {
                        HStack (alignment: .center, spacing: 0, content: {
                            
                            Text("Se")
                                .foregroundColor(.white)
                                .font(.system(size: 40))
                            Text("e")
                                .foregroundColor(.white)
                                .font(.system(size: 40))
                                .rotation3DEffect(Angle(degrees: rotation), axis: (x: 0, y: 1, z: 0))
                        })
                    }
                }.edgesIgnoringSafeArea(.all)
            }
        }
        .onAppear{
            withAnimation(Animation.easeInOut(duration: 1)){
                rotation += 180
            }
            withAnimation(Animation.linear.delay(1.5)){
                animationDone = true
            }
        }
        .onAppear(perform: getUser)
    }
}


在这种情况下,解决方案是延迟DispatchQueue, like

    }
    .animation(.linear, value: animationDone)             // << this !!
    .onAppear{
        withAnimation(Animation.easeInOut(duration: 1)){
            rotation += 180
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
            animationDone = true                         // << and this !!
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么用户登录后看不到动画? 的相关文章

  • 在 swiftUI 中捕获 onLongPressGesture 的 touchDown 位置?

    我正在尝试实现一个自定义上下文菜单 该菜单将在用户触摸的位置长按后出现 我一直无法找到一种方法来捕获 onLongPressGesture 的触地事件的 XY 位置 这就是我开始的地方 struct ExampleView View Sta
  • 保存 ScrollViews 位置并稍后滚动回该位置(偏移位置)

    我找到了保存 ScrollViews 的方法offset with a GeometryReader and a PreferenceKey SwiftUI 从 ScrollView 获取当前滚动位置 https stackoverflow
  • Swiftui,按钮网格视图

    我在这里检查了有关网格视图的几个问题 但我的问题有点不同 我想为按钮创建一个网格视图 以便每个按钮按下时导航到不同的视图 所以它看起来像这样 这是网格按钮视图 https i stack imgur com Q6WWB jpg 所以我在这里
  • SwiftUI - 获取孩子的大小?

    有什么方法可以获取 SwiftUI 中子视图的大小吗 我基本上希望做 UIKit 相当于 self child frame origin x self child intrinsicContentSize width 2 0 我认为 Geo
  • 使用动画更改 UIView 背景颜色

    我想改变我的UIView带有过渡动画的背景颜色 例如 如果视图是红色的 我将其更改为蓝色 蓝色将从屏幕底部向上滑动到顶部并充满整个屏幕 我想通过制作一个来做到这一点UIView具有相同大小和所需颜色 然后将其从屏幕外一直动画到顶部 但这似乎
  • 如何在 macOS 上的 SwiftUI 中设置拖动图像

    我正在尝试更改 GridView 的默认拖放预览图像 该图像似乎包含网格中的所有可见项目 据我了解 我应该能够设置NSItemProvider previewImageHandler块来自定义所使用的图像 我似乎找不到任何关于返回自定义图像
  • 理解 UIViewRepresentable

    斯威夫特 5 0 iOS 13 尝试了解 UIViewRepresentable 的工作原理 并将这个简单的示例放在一起 几乎就这样了 但也许完全是无稽之谈 是的 我知道 SwiftUI 中已经有一个 tapGesture 这只是一个测试
  • 工作表关闭后 SwiftUI 导航栏项目框架未对齐

    在 SwiftUI 中关闭工作表后 导航栏按钮不可点击 以下是重现该问题的步骤 出示一张单子 将应用程序移至后台一小段时间 2 秒 恢复应用程序并向下滑动关闭工作表 现在导航栏按钮框架未对齐 点击的工作框架与按钮的可见框架不同 这在 iOS
  • 在 SwiftUI App 中实现深色模式切换

    我目前正在我的应用程序中研究深色模式 虽然由于我的 SwiftUI 基础 深色模式本身并不困难 但我正在努力选择将 ColorScheme 设置为独立于系统 ColorScheme 的选项 我在苹果人机界面指南中找到了这一点 https i
  • HStack 中的 SwiftUI EditButton 未激活编辑模式

    作为更大表单的一部分 我希望有一个带有列表的部分 其条目可以重新排序 在整个视图中 应该只能编辑该特定列表 而不能编辑其他内容 因此我希望将编辑按钮放在列表附近 如果我只是将 EditButton 设置为节标题 则可以对列表项重新排序 但无
  • 如何检测 swiftui 中是否存在键盘

    我想知道按下按钮时键盘是否存在 我该怎么做 我已经尝试过 但我没有任何运气 谢谢 使用该协议 KeyboardReadable 你可以符合任何View并从中获取键盘更新 KeyboardReadable协议 import Combine i
  • SwiftUI:动态“列表”中的“切换”在重用时会破坏其布局?

    我试图展现一种动态List行包含Toggle元素 这Toggle最初布局正确 但是当它们滚动进和滚出视图时 即单元格重用时 它们的布局会中断 最小示例代码 import SwiftUI struct SwitchList View var
  • 如何使用 SwiftUI 创建自定义滑块?

    我可以使用 SwiftUI 创建滑块 但无法更改滑块的样式 如下图所示 问题 我无法在 SwiftUI 中找到任何选项来更改滑块样式 注意 我想仅使用 SwiftUI 创建它 我已经在 Swift 中使用 创建了这个滑块 https git
  • 导航栏隐藏在 SwiftUI 中不起作用

    我有三观 我想隐藏第三个视图中的导航栏 即使我给 navigationBarHidden true 导航栏正在显示 我找不到我哪里做错了 我已在下面附上我的代码和生成的屏幕截图 Xcode 版本 11 1 struct ContentVie
  • 如何使用 SwiftUI @ViewBuilder 创建需要参数的视图?

    在我的问题的答案中如何将通用 SwiftUI 视图添加到另一个视图 https stackoverflow com q 73571940 777861 我了解到这可以通过使用来完成 ViewBuilder 虽然这对于我的大多数用例都适用 但
  • SwiftUI 从一个列表拖动到另一个列表

    我正在尝试在列表之间拖放 我尝试过的 我找到了一个在 UIKIt 中执行此操作并使用 UIViewControllerRepresentable 的解决方案 但这不是我想要的 另一个解决方案是在列表上使用 onDrag 但这在 iPad 上
  • 如何将一个 SwiftUI View 作为变量传递给另一个 View 结构

    我正在实施一个very自定义 NavigationLink 称为MenuItem并希望在整个项目中重用它 它是一个符合以下条件的结构体View并实施var body some View其中包含一个NavigationLink 我需要以某种方
  • 如何使用 iOS16 删除 SwiftUI Plain List 中的节标题顶部填充

    当我们使用 SwiftUI List 组件并需要一个节标题时 顶部填充将出现在每个节的标题上 iOS15下 我们使用UITableView appearance sectionHeaderTopPadding 0来解决这个问题 查看附件截屏
  • SwiftUI 导航:如何将详细信息视图切换到不同的项目?

    我正在努力实现以下导航行为 用户可以从列表中选择一个项目 该项目会触发该项目的详细信息视图 在此详细视图上 导航栏中有一个 添加 按钮 可打开用于添加其他项目的模式表 到目前为止 一切都按预期进行 但添加项目后 我希望详细视图显示新项目 我
  • Xcode 11 beta swift ui 预览未显示

    只是使用 Swift UI 基本应用程序 即使我处于画布模式 预览画布也不会显示 应用程序运行 我有这个小片段 我错过了什么 if DEBUG struct ContentView Previews PreviewProvider stat

随机推荐

  • 模拟/存根“super”调用

    我想模拟一下super调用 尤其是某些 ES6 类中的构造函数 例如 import Bar from bar class Foo extends Bar constructor opts super opts someFunc super
  • GitHub 上隐藏的 Markdown 文本

    GitHub 上有专门的 Markdown 语法来支持隐藏文本吗 我只是想把一些待办事项记在里面README md为了我自己 不让别人看到 EXTRAS 为了致敬 Tamas 的出色回答 以及人们多次提出的问题 下面是如何在 MD 文件中编
  • C++11 中缺少 std::u8string

    为什么 C 11 提供std u16string and std u32string并不是std u8string 我们需要实现utf 8编码还是使用额外的库 C 20 添加char8 t and std u8string http www
  • MySQL 8.0 升级后特定查询性能不佳

    编辑 我在 Python 中看到与 PHP 相同的行为 好像和MySQL有关 我们正在尝试从 MySQL 5 7 升级到 8 0 我们的代码库使用 PHP MySQLi 来查询 MySQL 服务器 在我们的测试设置中 我们发现绑定大量参数的
  • 添加推送通知时出现无效权利错误

    我正在尝试按照本教程向我的聊天应用程序添加推送通知 https www appcoda com firebase push notifications https www appcoda com firebase push notifica
  • 如何为动态创建的 QML 元素添加事件处理程序?

    我根据以下内容动态添加了一些 qml 组件到我的 gui 中这篇博文 http kunalmaemo blogspot kr 2011 04 creating qml element dynamically on html 如何为这些新创建
  • 如何在php中获取目录中的最新文件[重复]

    这个问题在这里已经有答案了 所以我有这个处理 CSV 文件的应用程序 我有一行代码来加载文件 myFile data FrontlineSMS Message Export 20120721 csv The name of the CSV
  • 有没有办法将开关与 String.contains("") 集成?

    我需要检查 String 对象是否包含 各种子字符串 并根据结果执行不同的代码片段 目前我有一系列的 else if 如果可能的话 我想将其转换为开关 有没有办法做到这一点 现在 if SomeString contains someSub
  • 编写 SQL 查询以删除 Woocommerce 中的旧订单

    我想删除 Woocommerce 中的一些旧订单数据 仅保留最近 12 个月的订单数据 这是我用来删除所有订单的 SQL 查询 DELETE FROM wp woocommerce order itemmeta DELETE FROM wp
  • Android - 相机功能指南

    我正在使用 SDK CameraPreview 中的示例以及此站点中的示例http marakana com forums android android examples 39 html http marakana com forums
  • 获取当前位置(GPS/WiFi)

    我正在尝试使用它来获取我的位置 如下所示 LocationManager myLocationManager LocationManager getSystemService Context LOCATION SERVICE Criteri
  • 如何在打字稿中组织类型/接口声明?

    我对打字稿有点陌生 让我有点困惑的事情之一是类型 接口声明 我正在编写一个库 当前有一些类和更多类型 接口声明 我在大部分代码中使用这些类型 接口 最初我会将它们保留在一个文件中types文件夹 然后我会在需要的地方导入它们 现在我有一个m
  • 如何使用 Python 获取 Selenium WebDriver 中的用户代理信息

    我正在尝试获取我在 Selenium 中使用的实际用户代理 目前使用chromedriver 我找到了这个问题的Java版本 如何在 Selenium Web 驱动程序中获取 userAgent 信息 https stackoverflow
  • 如何获取相对和绝对光标位置?

    我怎样才能得到当前光标位置与SWT I need The absolute位置 仅相对于当前Display 位置relative到当前活动的Control 这获取光标位置相对于当前显示 import org eclipse swt widg
  • 如何在 Scala 的 Play!2 表单中包含图片类型?

    根据本指南 http www playframework org documentation 2 0 2 ScalaFileUpload 可以通过手写html表单来上传文件 我想将文件上传作为包含文本字段 例如姓名和电子邮件 的更大表单的一
  • 使用 ng-repeat 或 ng-options 时如何删除初始空白选项并选择

    有角度的新手 过滤通过dataservice返回的json数据 过滤是通过dropdown完成的 我想做的是结合以下几点 我想删除通过 Angular 返回的初始空白值 我还想让它预先选择一个默认值 该值不是 包含在我的数据对象中 在我的例
  • 在 Swift 2.0 中更改 NSView 的背景颜色

    我正在尝试更改 NSView 的背景颜色 并尝试了中概述的解决方案之一这个答案 https stackoverflow com questions 26553444 swift nsviewcontroller background col
  • Zookeeper:主机名解析失败

    我在 OpenShift Kubernetes 环境中运行 Zookeeper 我已将 Zookeeper 设置为StatefulSet为了可靠地保存配置数据 我在我的配置中配置了三台服务器zoo cfg通过主机名 但在启动时 主机名解析失
  • Base64编码中为什么要使用padding? [复制]

    这个问题在这里已经有答案了 可能的重复 如果输入长度不能被3整除 为什么base64编码需要填充 https stackoverflow com questions 4080988 why does base64 encoding requ
  • 为什么用户登录后看不到动画?

    我创建了一个自定义 LaunchSreen 当用户未登录时它运行良好 但如果他登录了 我们就看不到动画 视图会直接转到主视图 并且不等待动画完成 你知道为什么吗 import SwiftUI struct LaunchScreen View