如何仅通过Storyboard创建0.5像素宽度的线?

16

我对iOS故事板不熟悉,有人可以告诉我如何创建0.5像素宽的线吗?我已经阅读了这篇文章:如何创建0.5像素宽度的线,我知道如何通过编码来实现它,但是否有更简单的方法,例如使用故事板?


嘿 @user2077625,我的回答有帮助吗?还需要进一步解释吗? :) - nburk
可能是如何在Interface Builder中创建1像素线?的重复问题。 - Richard Venable
6个回答

41

它可以直接与xib/Storyboard一起使用。

为使其正常工作:在尺寸检查器中输入0.5后,不要按回车键。只需在stroyboard上的任何位置单击即可。然后0.5将保持为值。似乎IB仅在按回车键时检查该值并进行更正。

当您再次查看约束时,尺寸检查器将仍显示“0”作为值。 但是,在文档大纲中,您可以看到“0.5”。运行时还将其呈现为0.5。

在文档大纲中查看的约束


6
谁会想到在Xcode 8中将0.5传递给约束的constant时,必须不要按return键。实在是有点尴尬... - Jakub Truhlář
LOL,我们现在正在使用xCode 14.2,而这仍然是一个问题!不按回车仍然是一种解决方案。 - MQoder

7

这可以在Storyboard中完成-只需选择所需的限制并转到“Identity Inspector”,现在添加一个名为“constant”的新关键路径,并将其类型设置为“Number”,值为0.5。


7

只需使用用户定义的运行时属性

用户定义的运行时属性

选择您的约束并设置为用户定义的运行时属性:常数0.5

这很简单且最安全!


非常好的答案!谢谢! - Nike Kov

0
你可以创建一个 UIView 并使用 AutoLayout 将其 heightwidth(取决于线条是垂直还是水平)约束设置为 0.5
如果您不使用 AutoLayout,那么更简单,您只需将视图的 heightwidth 直接设置为 0.5

3
Storyboard不允许输入0.5,请尝试一下。 - Chanchal Raj
3
输入 0.5 后按 Tab 键,而不是回车键。 - avdyushin

0

我的解决方案:

  1. 创建一个视图,设置一个约束: "高度=0px",进入“Identity Inspector”并将此约束的优先级编辑为750。

  2. 然后选择该视图并单击“固定”按钮,向该视图添加另一个约束:“高度=0.5”,优先级为1000。在“Identity Inspector”中,您可以看到第二个约束自动变为“高度≥0.5”

适用于Xcode 7.3.1


0

如果您希望在所有不同的设备上(例如 2x 和 3x 屏幕)绘制一像素的宽度或高度分隔线,则需要考虑屏幕比例。您可以通过将宽度约束连接到 IBOutlet,然后通过编程方式设置约束常量来实现此目的。

在您的视图控制器中定义一个 IBOutlet 变量以获取约束

@IBOutlet var bottomDividerHeightConstraint: NSLayoutConstraint!

在IB中右键单击您的宽度约束,然后将其拖动并连接到您新定义的约束

enter image description here

enter image description here

然后在你的viewDidLoad()方法中放置以下代码

self.bottomDividerHeightConstraint.constant = 1/UIScreen.main.scale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接