【问题标题】:Can the border of UITextView or UILabel be set in Storyboard?可以在 Storyboard 中设置 UITextView 或 UILabel 的边框吗?
【发布时间】:2013-05-15 01:56:03
【问题描述】:

我想在 Storyboard 中设置 UITextViewUILabel 的边框。 可以吗?

以编程方式,它是setBorderColorsetBorderWidth

但是可以在 Storyboard 中设置边框吗?

【问题讨论】:

标签: iphone ios ipad interface-builder storyboard


【解决方案1】:

在.m中使用简单的代码,在视图中显示边框

view.layer.cornerRadius = 5.0f;
view.layer.masksToBounds = NO;
view.layer.borderWidth = .5f;
view.layer.shadowColor = [UIColor orangeColor].CGColor;
view.layer.shadowOpacity = 0.4;
view.layer.shadowRadius = 5.0f;

【讨论】:

  • 问题是如何在情节提要中做到这一点。
  • 我知道这是一个老话题,但它出现在我的搜索中,所以这里的解决方案是将用户定义的运行时属性“layer.borderWidth”设置为数值(以点为单位,所以 0.5将是 1/2 点)
【解决方案2】:

如前所述,这些属性是图层的一部分,而不是视图的一部分。但是您仍然可以在 IB 中设置它们的值。正如 hypercrypt 指出的那样,您可以使用用户定义的运行时属性。由于所有视图都有一个“层”属性,因此您可以设置“layer.borderWidth”。

这是一个案例,我正在更改cornerRadius。效果很好。

【讨论】:

  • 好的。附录。您不能以这种方式设置边框颜色。但是您可以设置borderWidth(和cornerRadius)。不幸的是,不知道这是为什么。也许当你将颜色设置为属性时,它正在寻找 UIColor,但 CALayer 想要 CGColor?
  • 这行得通。 layer.cornerRadius 也可以正常工作。我正在使用 xcode 4.6.2 并在 iPhone 5 和模拟器上对其进行了测试。
  • @DanMorrow 是的,当您将用户定义的运行时属性设置为“颜色”类型时,它表示UIColor,而不是CGColor。您仍然可以获得您想要的行为(能够从 Interface Builder 设置边框颜色),但您需要一个自定义 UIView 子类,该子类具有您从情节提要设置的 UIColor 属性和应用该颜色的代码边框,然后您需要将视图嵌套在该子类的实例内的情节提要中。这是否比它的价值更麻烦是留给读者的问题。
  • @MarkAmery 实际上你不需要需要继承UIView,你也可以通过一个类别来完成这个功能。在category接口中定义一个UIColor属性,实现设置self.layer.borderColor = inputColor.CGColor的setter,实现getter返回[UIColor colorWithCGColor:self.layer.borderColor]
  • 在 @dmur 的基础上,您现在可以使用 IBDesignable 来实际绘制 Xcode 6 中的样子。查看:nshipster.com/ibinspectable-ibdesignable
【解决方案3】:

如果您的目标是 iOS 6+,您可以使用 Identity Inspector 中的用户定义的运行时属性 来设置任何属性。性能对两者都不是问题,所以没关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-26
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多