【问题标题】:How to use the minimumScaleFactor modifier on a SF Symbol image?如何在 SF Symbol 图像上使用 minimumScaleFactor 修饰符?
【发布时间】:2021-06-24 02:07:43
【问题描述】:

我有一个 VStack 混合文本和一个 SF Symbol 图像。 VStack 高度未设置,是外部约束的结果。在小屏幕上,由于 minimumScaleFactor 修饰符,VStack 高度会缩小,文本字体大小会相应缩小。但是 SF Symbol 图像并没有按比例缩小:虽然 XCode 接受我在 Image 的字体定义上使用 minimumScaleFactor 修饰符,但它似乎没有效果。

 VStack (spacing:1){

                Text("10:00")
                    .font(.headline)
                    .minimumScaleFactor(0.5)
                Image(systemName:"arrow.down")
                    .renderingMode(.template)
                    .font(.body)
                    .minimumScaleFactor(0.5)
                Text("11:00")
                    .font(.headline)
                    .minimumScaleFactor(0.5)

        }

我想知道是否有一个技巧可以有效地将它与 SF Symbol 一起使用?如果没有,最有效的选择是什么?

谢谢

编辑 - 这是我尝试过的一些屏幕截图和内容

当什么都不需要缩小时

当高度受到限制时:文本缩小,但 SF 符号没有

添加 .resizable()

添加 .resizable() 和 .aspectRatio(contentMode: .fit):符号不会像文本那样缩小

【问题讨论】:

    标签: xcode swiftui


    【解决方案1】:

    一种方法是,您可以使用最大宽度和高度,而不是使用字体大小。所以当父视图区域减小时,图像也会采用它。

     Image(systemName:"arrow.down")
           .resizable()
           .aspectRatio(contentMode: .fit)
           .frame(minWidth: 0, maxWidth: 100, minHeight: 0, maxHeight: 100)
    

    【讨论】:

    • 忘了说我试过这个。如果我只添加 .resizable(),则图像高度会适当缩放,但不考虑符号纵横比。如果我还添加 .aspectRatio(contentMode: .fit),则符号将缩放到文本更大的高度。我将在我的初始帖子中添加屏幕截图。
    猜你喜欢
    • 2020-02-09
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多