- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我如何在翻译中获得效果,即 iOS 主屏幕在打开应用程序时所做的:它将应用程序缩放到全屏,从主屏幕上的应用程序图标开始?
在我的代码中,我有带有位置、宽度和高度的图标框架( CGRect
),我有最后的框架。有没有办法(可能结合一些)过渡来获得从图标框架到最终框架的缩放?
我有点类似于:
view.transition(AnyTransition.scale(scale: 0, anchor: UnitPoint.trailing))
最佳答案
这是一个关于如何通过组合过渡实现这种效果的演示...(为了演示简单起见,位置和大小被硬编码 - 它们可以使用几何阅读器、对齐指南或 anchor 首选项读取,实际上不影响过渡使用想法,也可以配置动画)
演示:
struct TestRisingView: View {
let screen = UIScreen.main.bounds
@State var showingView = false
@State var btFrame: CGRect = .zero
var body: some View {
GeometryReader { g in
ZStack {
Rectangle().fill(Color.clear)
self.activatingButton(frame: CGRect(x: 80, y: 30, width: 60, height: 40))
self.activatingButton(frame: CGRect(x: self.screen.maxX - 80, y: 30, width: 60, height: 40))
self.activatingButton(frame: CGRect(x: self.screen.maxX - 80, y: self.screen.maxY - 60, width: 60, height: 40))
self.activatingButton(frame: CGRect(x: 80, y: self.screen.maxY - 60, width: 60, height: 40))
if self.showingView {
self.topView
.zIndex(1)
.transition(
AnyTransition.scale(scale: 0.12).combined(with:
AnyTransition.offset(x: self.btFrame.origin.x - g.size.width/2.0,
y: self.btFrame.origin.y - g.size.height/2.0))
)
}
}
}
}
func activatingButton(frame: CGRect) -> some View {
Button(action: {
withAnimation {
self.btFrame = frame
self.showingView.toggle()
}
}) {
Text("Tap")
.padding()
.background(Color.yellow)
}
.position(frame.origin)
}
var topView: some View {
Rectangle()
.fill(Color.green)
.frame(width: 300, height: 400)
}
}
struct TestRisingView_Previews: PreviewProvider {
static var previews: some View {
TestRisingView()
}
}
关于ios - swiftUI 转换 : Scale from some frame - like iOS Homescreen is doing when opening an App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59390201/
大多数 Android 设备都有一个主屏幕,您可以通过拖动来水平滚动(还有其他设备也具有类似网格的 2d 滚动功能,但我只对水平滚动感兴趣)。 有人可以为我阐明如何实现这一目标吗? 首先,我考虑使用自
是否可以添加指向简单 html 站点的链接,将同一站点的书签放在 android 主屏幕上? 这应该为用户省去这些步骤:“添加到书签”+“将书签放在主屏幕上” 最佳答案 我不相信这可以通过编程方式完成
我正在构建一个 React Native 应用程序。我已经从 react-navigation 导入了 createStackNavigator。我能够让它在我的主屏幕上运行——我点击一个按钮,它把我
我正在开发一个由多个页面(具有不同网址)组成的移动网络应用程序 /index.html /products/1.html /products/2.html {...} 现在,如果用户位于子页面上并选择
我是为 iPhone 开发 Web 应用程序的新手。我想知道是否可以在您的网站上添加一个功能与“+ 添加到主屏幕”按钮类似的按钮? 最佳答案 很遗憾,这是不可能的。 但是,有一些很好的教程和片段可用于
现在我正在开发一个基于 Web 的应用程序,用户必须首先登录。 当我通过 iPhone Safari 打开页面、登录并重新启动 Safari 时,我仍然处于登录状态(Cookie 和 session
我正在尝试构建一个 PWA。我设法第一次触发了提示,并在我的 shell(桌面)上安装了该应用程序。然后我删除了它,我想强制提示重新出现(用于调试目的)但它不会。 我将我的 chome 标志绕过用户参
索引.html list .json { "name": "Board", "short_name": "Board", "icons": [ { "src": "p
因此,出于某种原因,一旦您将 HTML5 应用程序添加到 iOS 的主屏幕,就会失去使用 cookie 的能力。我正在使用运行连接的 node.js 服务器。 我见过其他人用 http://rubyg
从位于主屏幕上的小部件调用应用程序的 Activity 中的函数的正确方法是什么?对于我的示例,我有一个在我的 Activity 类中初始化的后台线程,并且希望能够从主屏幕按下小部件以调用特定函数来启
我正在使用 Ionic 2 构建渐进式 Web 应用程序。在浏览器中,在 Android 和 iOS 设备上,布局都是应该的。 在 Android 版 Chrome 和 Safari 上,您可以使用“
我在这里遇到了一些麻烦。我不知道为什么在尝试在主屏幕上安装我的 AppWidget 时出现 SecurityException?我不知道什么可以帮助解决这个问题,但这里是简化的 logcat 输出和我
我关注了 Google 的 first PWA tutorial并创建了我自己的项目 https://my-pwa-77d8a.firebaseapp.com .一切看起来都很好: 该项目有一个 ma
我已经使用 jQuery Mobile 创建了一个适合移动设备的网站,并添加了一些元信息,以便将其固定到 iOS 和 Android 主屏幕并作为网络应用程序启动(换句话说:在浏览器中,但没有浏览器导
使用 Google 服务可能会令人沮丧。他们有令人难以置信的文档,但文档总是假设一切正常。 如果有任何事情不像宣传的那样有效,那么您就完全靠自己了。没有错误消息,没有帮助排除故障,甚至没有确认某些事情
服务工作人员和 list 没有错误...不确定我在这里做错了什么。Microsoft Edge 中是否有类似的方法来实现“添加到主屏幕”? 最佳答案 Chrome 更改了手动安装 PWA 的方式。现在
我正在开发一个 SinglePageApplication (JS+HTML) 项目。该网络应用程序固定在 iPhone 的主屏幕上。此应用程序调用名为“pic2shop”的 native 应用程序来
我正在开发一个连接到在线数据库的移动网络应用程序,将数据从该数据库加载到离线本地 mysqlite 数据库中,然后应该可以离线使用。我让整个数据库都正常工作,但该应用程序仍然无法离线使用,因为它没有正
我一直在尝试在我的项目中实现 react 导航,但收效甚微。 每次我将屏幕导入导航器时,它都会显示为“未定义”。 我尝试仅将屏幕加载到顶层,它似乎可以工作,但是当我将其放入导航中时,它又恢复为未定义。
我最近将expo-cli升级到了2.21.2和Expo SDK v33版本,以获得对音频背景播放的支持。但是,在运行代码时出现错误。考虑下面附带的代码段, import { Audio } from
我是一名优秀的程序员,十分优秀!