【问题标题】:Can I pin a label inside another label to create a border?我可以将一个标签固定在另一个标签内以创建边框吗?
【发布时间】:2015-12-26 02:34:03
【问题描述】:

为了创建边框效果,我想用例如以下常量将一个标签固定在另一个标签内:

up - 5
left - 5
right - 5
down - 5

这会给我一个围绕内部标签的 5 点边框。这可能吗?如果是这样,我该如何做到这一点?或者有没有更好的方法在文本标签周围创建边框?

【问题讨论】:

  • 能否请你把它画在纸上并附上它的快照。

标签: ios xcode swift autolayout uilabel


【解决方案1】:

对于您的特定需求,我建议使用以下代码在 UILabel 本身上使用边框:

label.layer.borderColor = UIColor.blackColor().CGColor
label.layer.borderWidth = 1

或 Objective-C:

[label layer].borderColor = [[UIColor blackColor] CGColor];
[label layer].borderWidth = 2;

作为对您对另一个答案的评论的回应:

当您将一个视图固定到情节提要中的另一个视图时,它只会创建一个带有它猜测为您想要的参数的视图。通常这是正确的,但如果您需要对其链接的属性进行更细粒度的控制,您可以选择约束,并在检查器中更改它的所有属性(第一项和第二项除外):

但我建议不要使用UILabel,只是为了设置背景。如果您确实需要在标签后面使用视图,请使用简单的UIView,这样 iOS 就不必计算字母间距等并保留有关标签文本的信息。标签与空视图的这一实例可能没有区别,但开发人员应始终致力于明智地使用内存和 CPU。

【讨论】:

  • 非常感谢您花时间和精力为我解释和澄清这一点,因为它真的很有帮助!我同意您的第一个解决方案,即以编程方式设置属性是最佳途径。我的代码最终是: label.layer.borderColor = UIColor.blackColor().CGColor label.layer.borderWidth = 1 再次感谢您指出我正确的方向;我怀疑我的问题有一个简单的解决方案。
  • @SillyGoof 没问题,如果正确,请务必标记答案,如果您喜欢,请点赞!很高兴我能帮上忙!
【解决方案2】:

如果您的应用程序是基于情节提要的,那么您可以选择以下方法。简单地拖入图像并将其放在标签后面。只需将图像设置为您喜欢的任何样式边框即可。如果要将图片放在标签的前面,请确保图片中间透明。

对于像边框这样简单的东西,您不需要任何照片编辑软件,您可以使用 Microsoft Powerpoint 之类的工具。祝你好运,希望这会有所帮助!

【讨论】:

  • 是的,我正在使用故事板进行布局。第一个较大的标签是纯色的空白,第二个较小的标签是具有不同颜色和标题的文本标签。当我尝试从较小的标签控制拖动到大标签时,它只给了我将前缘和后缘固定到外部标签的选项,即使这样也不能正常工作。
猜你喜欢
  • 2013-04-17
  • 1970-01-01
  • 2017-05-15
  • 2010-09-07
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多