当前位置: 首页 > 知识库问答 >
问题:

为什么在ZStack中更改图像的contentMode时文本会展开?

陆臻
2023-03-14

我有一个SwiftUI视图,看起来是这样的:

@State var showFullScreen: Bool = false

ZStack {
    Image(uiImage: image)
        .resizable()
        .aspectRatio(contentMode: showFullscreen ? .fill : .fit)
        .padding(showFullscreen ? 0 : 16)
            
    VStack {
        Spacer()
                
        Label("{switchViewsMessage}".localized(), systemImage: "hand.point.up.left.fill")
            .frame(maxWidth: .infinity, alignment: .center)
            .padding()
            .background(bgColor)
            .applyShape(.rounded)
    }
    .padding()
}
.onTapGesture { withAnimation { showFullscreen.toggle() } }
.navigationBarTitle("{photo}".localized())

state设置为showfullscreen=false时,一切看起来都与预期的一样。但是,当将showfullscreen设置为true时,图像将更改为.fill以获取整个屏幕,但灰色背景的文本也会变得比屏幕更宽。

为什么在改变状态时文本也会在宽度上扩展?

共有1个答案

轩辕华辉
2023-03-14

有没有什么方法我可以仍然允许图像展开,而文本只能填充可用的屏幕空间?

请使用以下模式-将图像和文本分别放置在自己的空间中:图像放在背景中,文本放在覆盖层中,如

Color.clear           // << fills screen space (taking into account safe area
  .background(

     ... your image here

  )
  .overlay(

    VStack {
       ... your text here
    }

  )
  .onTapGesture { withAnimation { showFullScreen.toggle() } }
 类似资料:
  • 我在用python修改文本时遇到了问题,尽管我看到很多人在使用它 我的代码:

  • 我有基于的图像,当这些(我的)图像生成时,被下拉,以便生成我自己的图像。因此,在我的本地计算机中,我有映像。假设基映像得到更新,Microsoft发现该映像中有一个bug,并决定对该标记进行修复,因此它仍然被称为,但实际上它与我构建自己的映像时不同。 所以我有两个问题: 1。每次我的图像被拉下,它会得到我建立图像时的基础图像,对吗?(这似乎很明显,但我需要检查) 2。如果我注意到(网钩,扳机?)有

  • 我正在创建一个Zend Framework应用程序,用户可以在其中上载配置文件图像。可接受的文件类型为png、jpg和gif。图像最终被存储为用户id和文件扩展名。 我想知道的是,假设用户上传png或gif文件,将文件扩展名更改为jpg是否安全? 这样,所有的配置文件图像都将具有相同的文件扩展名,我只是不确定这样更改文件类型是否是一个好主意。

  • 问题内容: 我编写了以下JavaScript: 此代码声明一个变量并将其设置为数组值。然后,它声明第二个变量并将其设置为。它对进行操作,然后向和发出警报。不知何故,当我对执行操作时,似乎对执行了相同的操作。 然后,代码对数字值执行相同的操作:声明一个变量并将其设置为数字值。然后,它声明第二个变量并将其设置为。它对进行操作,然后向和发出警报。在这里,我得到预期的行为:对不同的价值观和。 数组与Jav

  • 问题内容: 新手有问题,请保持温柔: 结果是: 我不明白为什么列表改变时,我只是在做,没有。我什至不知道要用什么搜索词来弄清楚。 问题答案: 这是因为在进行分配后,和都引用相同的列表。 尝试执行以下操作以查看它们是指相同的对象还是不同的对象: 一个例子: 如果您确实要创建这样的重复副本,而不是引用原始列表,而是引用列表的副本,请使用slice运算符: 一个例子: 另外,请勿将其用作变量名,因为最初

  • 工作模板艺术。在这里,我已将文本转换为图像这是工作良好,我有3个文本框,每个文本框在浏览器上生成单独的图像行。问题是,我还有另外三个文本框用于更改每个转换文本的字体大小。我不知道如何将3个不同的字体大小变量转换成转换文本来改变字体大小,因为。 演示链接:-单击此处 贝娄是我真正想要的快照。在这里您可以看到,每行文字的字体大小都可以通过字体大小文字(行高)来更改。 我的索引。php示例代码 我的一些