SF 符号在 SwiftUI 中调整为相同大小看起来不正确

2023-12-21

我在我的应用程序中显示一排各种 SF 符号,并希望将它们的大小调整为按钮。然而,由于 SF 符号一开始的大小并不相同,当我将它们全部调整到 44x44 时,有些符号显得太大。我可以根据它们的内容来调整它们的大小,但是我实际上不知道这些符号会是什么,只是它们会被类似地分组,即。一堆形状,一堆箭头等

有没有人对如何正确调整它们的大小有任何建议,而不会让其中一些看起来太大。例如,下图中中间的箭头对我来说看起来太大了。

import SwiftUI
import PlaygroundSupport

struct ContentView: View {
    var body: some View {
        ZStack {
            Color.black
            VStack {
                HStack {
                    Image(systemName: "arrow.left")
                        .font(.title)
                        .foregroundColor(.white)
                        .border(Color.white.opacity(0.3))
                    
                    Image(systemName: "arrow.up.right")
                        .font(.title)
                        .foregroundColor(.white)
                        .border(Color.white.opacity(0.3))

                    Image(systemName: "arrow.down")
                        .font(.title)
                        .foregroundColor(.white)
                        .border(Color.white.opacity(0.3))
                }
                
                HStack {
                    Image(systemName: "arrow.left")
                        .resizable()
                        .aspectRatio(contentMode: .fit)
                        .frame(width: 44.0, height: 44.0)
                        .font(.headline)
                        .foregroundColor(.white)
                        .border(Color.white.opacity(0.3))
                    
                    Image(systemName: "arrow.up.right")
                        .resizable()
                        .aspectRatio(contentMode: .fit)
                        .frame(width: 44.0, height: 44.0)
                        .font(.headline)
                        .foregroundColor(.white)
                        .border(Color.white.opacity(0.3))

                    Image(systemName: "arrow.down")
                        .resizable()
                        .aspectRatio(contentMode: .fit)
                        .frame(width: 44.0, height: 44.0)
                        .font(.headline)
                        .foregroundColor(.white)
                        .border(Color.white.opacity(0.3))
                }
            }
            .padding()
        }
    }
}

PlaygroundPage.current.setLiveView(ContentView())

使用时fill内容模式它们看起来相同,所以这可能是合适的(只需将帧大小调整到所需的大小)。

使用 Xcode 12 / iOS 14 进行测试。

HStack {
    Image(systemName: "arrow.left")
        .resizable()
        .aspectRatio(contentMode: .fill)      // << here !!
        .frame(width: 44.0, height: 44.0)
        .font(.headline)
        .foregroundColor(.white)
        .border(Color.white.opacity(0.3))

    Image(systemName: "arrow.up.right")
        .resizable()
        .aspectRatio(contentMode: .fill)      // << here !!
        .frame(width: 44.0, height: 44.0)
        .font(.headline)
        .foregroundColor(.white)
        .border(Color.white.opacity(0.3))

    Image(systemName: "arrow.down")
        .resizable()
        .aspectRatio(contentMode: .fill)      // << here !!
        .frame(width: 44.0, height: 44.0)
        .font(.headline)
        .foregroundColor(.white)
        .border(Color.white.opacity(0.3))
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SF 符号在 SwiftUI 中调整为相同大小看起来不正确 的相关文章

  • SwiftUI 检测用户何时截取屏幕截图或屏幕录制

    On UIViewController我们可以轻松地将观察者添加到控制器 喜欢 class ViewController UIViewController override func viewDidLoad super viewDidLoa
  • 如何使用 SwiftUI @ViewBuilder 创建需要参数的视图?

    在我的问题的答案中如何将通用 SwiftUI 视图添加到另一个视图 https stackoverflow com q 73571940 777861 我了解到这可以通过使用来完成 ViewBuilder 虽然这对于我的大多数用例都适用 但
  • 如何使用 iOS16 删除 SwiftUI Plain List 中的节标题顶部填充

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

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

    我想拖动一个滑块 当然也让它滑动 我可以做其中之一 但我不能两者都做 如何拖动并拥有可用的滑块 我也尝试找到一种方法来删除手势 但我找不到方法来做到这一点 还尝试了 Apple Composition SwiftUI Gestures 文档
  • Xcode 11 beta swift ui 预览未显示

    只是使用 Swift UI 基本应用程序 即使我处于画布模式 预览画布也不会显示 应用程序运行 我有这个小片段 我错过了什么 if DEBUG struct ContentView Previews PreviewProvider stat
  • 带有自定义图像标题的 swiftui 列表

    我想在 swiftui 中为列表设置图像标题 我想要的效果如下图所示 我的代码如下 import SwiftUI struct ContentView View var body some View NavigationView List
  • SwiftUI navigationBarTitle - 显示模式:.inline - 崩溃

    我的 SwiftUI 有问题 我正在创建一个带有导航栏的列表 并且我想将导航栏模式设置为内联 我不希望它太大 默认情况下 但是当我将导航栏标题模式设置为内联时 应用程序崩溃了 struct User var index Int var na
  • 在 HStack 中以正确的方式对齐两个 SwiftUI 文本视图

    我有一个包含两行的简单列表视图 每行包含两个文本视图 查看一和查看二 我想对齐每行中的最后一个标签 查看两个 以便名称标签领先对齐并保持对齐 无论字体大小如何 第一个标签 查看一个 也需要前导对齐 我尝试在第一个标签 查看一个 上设置最小框
  • SwiftUI NavigationView 从其内部开始

    因此 我在页面视图样式的 TabView 中嵌入了一个 NavigationView 首次加载时 NavigationView 将在其内部启动 然后重新加载后即可正常显示 我不确定是什么原因造成的 我制作了一个 GIF 来更好地说明问题 这
  • 在 SwiftUI 中,如何在 UIView 内部或作为 UIView 使用 UIHostingController?

    另一个问题标题可以是 如何将 UIHostingController 的视图添加为 UIView 的子视图 我正在创建一个新的 UI 组件 并且很乐意尝试 SwiftUI 下图是当前的视图结构 UIView 是我现在正在使用的 右上 Swi
  • SwiftUI - NavigationSplitView 内的 NavigationStack 内的嵌套链接不起作用

    我正在尝试 ipadOS16 macOS13 中提供的新导航 API 但在弄清楚如何在 macOS 13 上将 NavigationSplitView NavigationStack 和 NavigationLink 组合在一起时遇到了一些
  • 从代码覆盖率中排除 SwiftUI 预览?

    我无法将代码覆盖率提高到最低限度 90 因为 XCode 考虑了 PreviewProvider 我应该怎么办 删除所有 SwiftUI 预览 或者有没有办法可以排除一些带有 PreviewProvider 关键字等的行 Xcode 版本
  • SwiftUI 有模糊背景的方法吗?

    我希望模糊视图的背景 但不想必须突破 UIKit 才能完成它 例如 UIVisualEffectView 我正在翻阅文档却一无所获 似乎没有办法实时剪辑背景并对它应用效果 我错了还是以错误的方式看待它 1 Native SwiftUI方式
  • 更改 RealityKit 中 AnchorEntity 的旋转

    我在放置对象 3 秒后将 3d 对象放置到 ARViewController 中 然后我想将对象旋转 90 度 arView scene addAnchor anchorEntity DispatchQueue main asyncAfte
  • SwiftUI 表单中的动态行高

    我正在向 SwiftUI 表单添加控件以帮助用户输入数据 并限制条目 尽管 Forms 有很多值得喜欢的地方 但我发现在该容器之外运行良好的东西在容器内却会发生非常意想不到的事情 并且如何弥补这一点并不总是显而易见的 计划是将数据字段显示为
  • SwiftUI - ForEach 与 Stride

    我试图创建一个 Hstack d 卡列表 也就是说 我想创建一系列行的滚动视图 每行将包含一个 HStack 其中两个视图并排显示 并由某种列表数据结构初始化 struct MyHStackView View var myArray Som
  • 如何在 SwiftUI 中将阴影应用于内部视图?

    我在周围添加了阴影VStack其中包含我的两个文本字段和一个提交按钮 然而 阴影也被应用到了文本框内的两个文本字段 VStack 我在这里缺少什么导致这种情况发生吗 我尝试添加shadow radius 0 在文本字段上 但它不会改变任何内
  • 如何在 iPhone 上使用 SwiftUI 显示表格数据?

    我正在为当地的体育联盟开发一个应用程序 一个视图将是当前排名 每行有几个字段 球队名称 已玩的比赛 得分等 我希望球队列左对齐 其他列右对齐 似乎最好的答案是 SwiftUI 的 Table 但在 iPhone 上 它只显示第一列 我尝试过
  • 如何更改特定区域的工作表的 DragGesture?

    如果我有一个打开工作表的按钮 Button action show true label Text Open sheet isPresented show Text Sheet view 整张纸是 可移动的 有一个DragGesture 有

随机推荐