XCODE 11, SWIFT 5. 画线、框等

XCODE 11, SWIFT 5. Drawing Lines, Boxes etc

我最近切换到 Xcode 11 和 Swift 5。还将我的整个项目从 UISwift 切换到故事板,因为我阅读它有很多优点。

现在我发现了缺点,我无法在我的故事板上绘制 boxes/lines,我可以使用代码来完成,但这会在故事板和元素约束中更改我的项目时产生更多问题。

有谁知道是否可以在文本之间绘制背景 boxes/lines?在某些情况下,我有 6 个标签都放在一个框下,所以我不能使用标签背景功能。

请参阅下面的在线示例,灰色框

Now I’m finding disadvantages, I can’t draw boxes/lines on my storyboard

故事板编辑器不是绘图程序 -- 它主要用于布置 视图 并将它们相互连接以及连接到其他对象,例如视图控制器。如果你想用它来画线和框,那你就找错人了。

情节提要编辑器 允许您配置您创建的视图,例如,您可以设置 UIImageView 显示的图像,或标签中显示的文本,或任何视图的背景颜色。您示例中的灰色框很容易通过将视图的背景颜色设置为灰色来实现。或者更好的是,使用 table 来显示这些视图,并使用 programmatically set the background color of the cells depending on their row.

Does anyone know if it’s possible to draw background boxes/lines between text?

有一些 hacky 选项。例如,您可以很容易地创建一个视图 class,通过它的中心点绘制一条水平或垂直线,或者一个视图 class,它在一个盒子的周边绘制一条线。 (实际上,您可以使用键值编码来设置视图层的属性来执行此操作 even without creating a subclass,但这不是您每次需要框时都必须做的事情。)这些适合偶尔使用,但是如果你有任何复杂的绘图要做,可能是时候编写一个视图 class 在代码中绘制必要的内容了。

In some instances I have 6 labels that would all go under one box, so I can’t use label background feature.

这 6 个标签都应该包含在另一个视图中,因此您只需为包含它们的视图设置背景颜色。同样,从您的示例来看,这些行看起来像是 table 中的行。 table 中的每一行都是它自己的视图(或 "cell"),并且很容易在配置该单元格中其余子视图的相同代码中设置背景颜色。