SwiftUI共20篇
动画(四) - 过渡-Stewed Noodles 资源

动画(四) – 过渡

以视图的插⼊和移除来设定动画,SwiftUI 将这些动画称为 过渡 (transition) 。 当我们使⽤动画来改变那些会导致视图插⼊或者移除的状态时,SwiftUI 会添加⼀个默认的 .opacity 过渡效果。 struc...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
011010
布局(四) - 容器视图-Stewed Noodles 资源

布局(四) – 容器视图

HStack 和 VStack⽔平和竖直堆栈在布局⼦视图时采⽤的⽅法相同,只是对应的轴不⼀样。以 HStack 为例。HStack(spacing: 0) { Color.cyan Text('Hello, World!') Color.teal } 如果我们提供⼀个...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
08410
动画(二) - 控制动画-Stewed Noodles 资源

动画(二) – 控制动画

在 SwiftUI 中,有多种⽅式可以指定动画发⽣地时机 当某个特定的值改变时,触发隐式动画。 当某个特性事件发⽣时,触发显示动画。 动画类型 隐式动画 要指定隐式动画,可以在视图树的任意位置使...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
0755
高级过渡-Stewed Noodles 资源

高级过渡

SwiftUI 的过渡系统允许我们自定义插入或移除视图的方式,可以在要过渡的视图周围插入一系列新视图、创建本地状态、添加复杂的动画等等。 本文创建的效果,如下所示 Twitter 点赞效果 添加新的...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
07312
布局(七) - 基于首选项的布局-Stewed Noodles 资源

布局(七) – 基于首选项的布局

几何读取器使⽤⼏何读取器 (GeometryReader),我们可以测量被建议的尺⼨。⼏何读取器⽆条件接受被建议尺⼨,并通过⼀个⼏何代理 (GeometryProxy) 将该尺⼨报告给它的视图构建器闭包。通过⼏何代...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
0697
环境(三) - 自定义组件样式-Stewed Noodles 资源

环境(三) – 自定义组件样式

本文以 badge 为例,实现自定义组件样式的具体步骤: 创建一个 BadgeStyle 协议为角标样式定义接口。 为角标样式创建一个环境变键。 在 badge 修饰符中使用这个自定义角标样式。 ⻆标样式的协议...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
06214
环境(一) - 从环境中读取-Stewed Noodles 资源

环境(一) – 从环境中读取

环境 (environment) 本质上,它是⼀种内置的依赖注⼊ (dependency injection) 技术。 下⾯这个例⼦中,当我们在 VStack 上设置字体时,它会传播到两个 Text 视图中去,并改变它们的外观: Font ...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
06014
环境(二) - 自定义环境键-Stewed Noodles 资源

环境(二) – 自定义环境键

环境键的自定义需要两个必要步骤和一个可选步骤: 实现⼀个⾃定义的 EnvironmentKey。 在 EnvironmentValues 上添加扩展,并提供⼀个属性,让我们能在环境中获取和设置该值。 (可选) 在 View 上...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
05514
布局(一) - 布局算法-Stewed Noodles 资源

布局(一) – 布局算法

布局的具体算法描述如下:父视图向子视图提供一个建议尺寸。⼦视图基于这个建议尺⼨决定⾃⼰的尺⼨,如果这个⼦视图还有⾃⼰的⼦视图,从步骤 1 开始递归。⼦视图将它的尺⼨报告给⽗视图。⽗视图...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
0478
布局(五) - 对齐-Stewed Noodles 资源

布局(五) – 对齐

默认情况下,⼏乎所有的视图都会把⼦视图居中对⻬。Text('Hello') .frame(width: 100, height: 100) frame 修饰器拥有⼀个默认值为 .center 的 alignment 参数。这 100⨉100 的区域中,⽂本将被...
jiulinxiri的头像-Stewed Noodles 资源烩之面大会员jiulinxiri2年前
0469