gpt4 book ai didi

swift - UIStackView 和多行标签?

转载 作者:搜寻专家 更新时间:2023-11-01 05:33:45 54 4
gpt4 key购买 nike

我试图让它工作,但界面构建器正在努力,我想知道是否有人对此有合适的解决方案。

所以我想要一个包含多行标签的stackview。谷歌上的第一次点击(read here)告诉您将标签嵌入 View (A),然后将该 View 拖到另一个 View (B)(因为嵌入 View (A)有一个 20 像素的垫)然后取消嵌入第一 View (A)....瞧。除了这只会欺骗水平堆栈的堆栈 View ,如果您继续堆栈 View ,您仍然会遇到很多问题(我将在问题的后面用屏幕截图进行演示)。

我找到了 another guide在谷歌上批评该问题的潜在修复方法,即修复堆栈 View 宽度。作者指出 Apple 并不打算让你这样做,毕竟它应该是自动布局,而不是固定布局。本指南认为问题只是一个错误,您可以创建一个带有单行标签的堆栈 View ,将其全部设置好,然后添加多行。我试过这个但没有用,它只是把整个堆栈 View 搞砸了!除非标签的行数设置为 1 且仅为 1,否则堆栈 View 将扭曲并基本上中断。(Image 1) Stackview with label set to have multiple lines.

所以我之前谈到了在 View 中嵌入段落标签。 This doesn't cause any errors in the storyboard,(Image 2)您无法真正将文本与其他 UIStack 正确对齐,但这不是我要立即解决的问题。什么是问题是在运行时发生了什么...... Simulator, Portrait (Image 3) , Simulator, Landscape (Image 4) .

我尝试在实际设备上运行它以查看它是否只是一个模拟器错误,但同样的事情发生在我的 iphone 6 上。可以肯定地说这可能行不通!

哦,在我们继续之前,我将按以下方式构建堆栈 View :

[name - placeholder]
[phone - placeholder]
[address - placeholder]
, setting a spacing of 8 and equal fill
,vertically stacking all of these stacks (3 into 1) and setting a spacing of 8
, vertically stacking the details titles with the big stack and 8 spacing
,finally adding the title and button into the stack view with a spacing of 32.

然后我应用一些 Storyboard 约束:在本例中只是垂直和水平居中,因此 View 始终居中并在两个屏幕方向上正确显示。

即使这没有正确对齐,这是在应用堆栈和约束之前的 View ,这就是我希望我的残局看起来像:Looks kind of silly, but I want to figure this out so I can actually stack my paragraphs! (Image - 5) .

现在我希望我已经确定您不能真正将标签嵌入 View 中,因为它在运行时无法正确呈现,并且您不能欺骗堆栈添加新行。

如何将多行标签安全地放入堆栈 View 中?

这几乎是一个分支问题,但是当您尝试将堆栈应用于段落标签时,它会将标签的宽度设置为绝对巨大(有时它会抛出界面构建器无法呈现它的错误 Demonstrated here (Image 6) 。我已经看到这种情况发生过几次,但并不真正理解 xcode 如何认为这是一个明智的选择。

我不想对我的标签或堆栈应用固定宽度,因为我只会收到另一个警告,而警告是不好的!

我完全不知道该怎么做,如果有人知道实现这一目标的方法,我将永远感激不尽!

谢谢

最佳答案

这看起来确实是一个错误。

对我有用的解决方法是将多行标签嵌入 View 中并将其保留在那里。

这修复了 Storyboard 编辑器上的布局,也适用于模拟器。

奇怪的是,如果我在同一个 StackView 上有多个多行标签,我只需将其中一个嵌入到 UIView 中,然后所有其他多行标签就会正常运行。

关于swift - UIStackView 和多行标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47064879/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com