首页 > 解决方案 > XCODE 11、SWIFT 5。画线、框等

问题描述

我最近切换到 Xcode 11 和 Swift 5。当我读到它时,我还将整个项目从 UISwift 切换到 Storyboard,它有很多优点。

现在我发现了缺点,我不能在我的情节提要上绘制框/线,我可以使用代码来做到这一点,但是在情节提要和元素约束中对我的项目进行更改时会产生进一步的问题。

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

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

文本

标签: xcodestoryboarduistoryboardswift5xcode11

解决方案


现在我发现缺点,我不能在我的故事板上画框/线

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

故事板编辑允许您配置您创建的视图,例如,您可以设置 UIImageView 显示的图像、标签中显示的文本或任何视图的背景颜色。您的示例中的灰色框很容易通过将视图的背景颜色设置为灰色来实现。或者更好的是,使用表格来显示这些视图,并根据它们的行以编程方式设置单元格的背景颜色

有谁知道是否可以在文本之间绘制背景框/线条?

有一些 hacky 选项。例如,您可以非常轻松地创建一个通过中心点绘制水平或垂直线的视图类,或者创建一个围绕框的周边绘制一条线的视图类。(您实际上可以使用键值编码在视图层上设置属性,即使不创建子类也可以做到这一点,但这并不是您每次需要盒子时都必须做的事情。)这些对于偶尔使用来说很好,但是如果您有任何复杂的绘图要做,那么可能是时候编写一个在代码中绘制必要内容的视图类了。

在某些情况下,我有 6 个标签都可以放在一个盒子下,所以我不能使用标签背景功能。

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


推荐阅读